책에서 프로그래밍 인터뷰 노출되면 아래 프로그램의 복잡성은 O (N)이지만 이것이 가능한 방법을 이해하지 못한다고합니다. 누군가 이것이 왜 이것을 설명 할 수 있습니까? int var = 2;
for (int i = 0; i < N; i++) {
for (int j = i+1; j < N; j *= 2) {
var += var;
저는보다 쉬운 루프의 기본 개념을 이해하는 것 같습니다. 첫 번째 루프는 내부 루프처럼 O (n)에서 실행됩니다. 둘 다 중첩되어 있으므로 O (n^2)의 총 실행 시간을 얻으려면 곱합니다. 상황이 바뀌기 시작하면 어떻게 알아 내야할지 완전히 모르겠다. 누군가 나에게 다음 두 가지 실행 시간을 계산하는 방법을 설명 할 수 있습니까? 또한 이해를 돕기 위
또 다른 인터뷰 질문에서 가능한 가장 짧은 계산 시간에 정렬 된 배열이 주어지면 반복되는 값의 가능한 최대 하위 배열을 찾으라는 질문을 받았습니다. Let input array be A[1 ... n]
Find an array B of consecutive integers in A such that:
for x in range(len(B)-1):
누구든지 이원 그래프에서 최대 독립적 인 정점 집합을 찾는 무차별 대입 알고리즘의 일반적인 개요를 알고 있습니까? 나는 MIS를 찾는 König의 정리와 같은 다른 알고리즘이 있다는 것을 알고 있지만 무차별 방식의 의사 코드는 무엇이 될지 궁금해하고 있었습니까? 또한 이러한 무차별 대입 알고리즘의 런타임 복잡도는 어떻게됩니까?
나는 이번 학기 알고리즘을 과정을 촬영하고 난을 설명 2.3-7 CLRS 의 문제를 해결하기 위해 노력하고 theta (ng n) 시간 알고리즘은 n 개의 정수로 이루어진 집합 S와 정수 x가있는 경우 S에 합계가 x 인 두 개의 요소가 있는지 여부를 결정합니다. 이 문제를 해결하는 방법을 모릅니다. nlogn 시간에 완료되기 때문에 병합 정렬 알고리즘을
큰 세타, 큰 오, 큰 오메가의 개념을 이해합니다. 나는 그것을 증명하는 데 어려움을 겪고 있습니다. 유도를 한 이후로 오랜 시간이 걸렸으므로 나는 녹슨 것이고 간단한 것을 놓치고 있다고 확신합니다. 예를 들어 도움이 필요한 문제는 5n² - 6n = Θ(n²)입니다. 내가 문제의 빅 - 오 부분을 오긴했는데 (나는 큰 아, 그리고 Ω 별도로 정확합니까?)
의 실행 시간은 다음 해결책이 맞는지 누구에게 말해 줄 수 있습니까? I은 (n)은 t = t의 실행 시간을 계산하는 것을 시도하고있다 (N-2) + (N-2) ² 는 N (상기 => t 그것을 평가 (n-6) + (n-6) ² + (n-2) ² (n-4) + t (n-4) + n² ... 2로 줄이면되기 때문에 ND N/2의 조건과 모든 사각형 확장함
먼저, 여기에 (자바를 사용) 내 쉘 정렬 코드입니다 : - 예를 들어, 1,3,7,21 public char[] shellSort(char[] chars) {
int n = chars.length;
int increment = n/2;
while(increment > 0) {
int last = increment;