여기에 문제가 있습니다. 정렬 된 목록에 삽입 할 N 개의 난수 집합이 있습니다 (가장 작은 것부터 가장 큰 것까지). 전체 목록에 대한 최악의 경우의 점근 시간 성능은 어떻게됩니까? 몇 가지 언어로 된 코드로 정렬 된 목록을 삽입하는 방법을 알고 있습니다. 두 가지 다른 방법이 있습니다. 프로그램에서 한 항목 더 배열에 아직 공간이 있는지 확인합니다. 그
"n" "a"또는 "b"로 채울 수있는 문자열 n이 있다고합시다. 예 : n = "aaabbabab", "ababababab"등등. 는 그리고 우리는 HalfA(n):
count a = 0;
for each i in n:
if n == 'a'
i++;
if i >= n.length/2
return t
A를 0과 1을 갖는 배열 [1..n]이라고하고, func()은 복잡성이 세타 (m) 인 함수 여야합니다. 주어진 의사 코드에 대해 복잡 할까? 나에게 함수 func에 대한 최악의 경우를 Accorlding counter=0;
for(i=0;i<n;i++)
{
if(a[i]==1)
counter++;
이것은 인터뷰 질문이었고 내 분석이 정확한지 궁금합니다. '마법 선택'기능은 기본적으로 크기가 n 인 배열에서 'm 번째'가장 작은 값을 생성합니다. 작업은 효율적인 알고리즘을 사용하여 오름차순으로 'm'개의 요소를 정렬하는 것이 었습니다. 필자의 분석은 'm 번째'가장 작은 값을 얻기 위해 '마법 선택'기능을 먼저 사용하는 것이 었습니다. 그런 다음 분할
저는 그것이 다음과 같은지 확인하려고합니다 : O (1). 어떻게 증명할 수 있습니까? 복잡도 측면에서 log_b (n)은 log (n)입니다. O (log_2 (n) -log_3 (n)) = O (0) = O (1)입니까? 그건 강한 증거처럼 보이지 않습니다. 또한 이것은 점근 적으로 수렴하지 않으므로 어떻게 O (1)이 될 수 있습니까?
아래 위의 코드가 결과 N = 10 즉 "2520 수인"를 제공 내 스크립트 var num=1;
var validator =false;
while(!validator){
for(var k=1;k<=N;k++)
{
if(num%k==0)
{
validator = true;
}
els
이 질문을 통해 인접 목록 표현에서 그래프의 각 노드의 속도를 계산해야했습니다. for each u
for each Adj[i] where i!=u
if (i,u) ∈ E
in-degree[u]+=1
지금 날에 따라 그 시간 복잡도는 O(|V||E|+|V|^2)되어야하지만 언급 용액 대신 O(|V||E|)는 동일하게 기재.
일부 프로그램에서 수행되지 않는 연산의 복잡도를 설명하려면 어떻게해야합니까? 예를 들어 다음과 같은 간단한 함수가 주어진다. def trivial():
return
Sort를 호출하여 소비되는 시간의 상한을 어떻게 설명 할 수 있습니까? Sort를 호출하는 데 필요한 시간이 O (0)라고 말할 수 있습니까? 이것은 O 표기법의 정의가 주어진다면