각 코드 줄에서 수행 할 작업 수는 어떻게 계산합니까?큰 O 작업 수
예.
Algorithm find2D (A,x)
arrLength = A.length
for j <- 1 to arrLength – 1 do
for k <- 1 to arrLength – 1 do
if A[j][k] = x then
return true
increment k
increment j
return false
나는이 의사 코드를 생각해 냈습니다. 따라서 코드의 각 줄에 필요한 작업 수를 계산하는 방법을 잘 모르겠습니다.
j를 설정해야하기 때문에 첫 번째 루프와 마찬가지로 1 + n 연산이 될 것입니다. j를 arrLength - 1과 비교하면 n-1 번 반복됩니다. 그러면 n-1 + 1 + 1이됩니다. 이것은 n + 1 연산입니다.
그래서 두 번째 루프의 경우 중첩되어 있어도 똑같습니다.
나는 약간의 조작이 얼마나 될지에 대해 A[j][k] = x
비교에서 다소 혼란 스럽습니다.
감사합니다. 만약 어레이의 각 소자 위에, (로그 곱하여 반복적 둘로 어레이 나눌 때마다 N
곱 루프마다 기록
:
일반적으로 비교는 1 작업으로 간주되며, 배열의 모든 항목을 다른 모든 항목과 비교하므로이 비교는 n^2 번 (최악의 경우)이라고합니다. – Lithium