이 메서드는 num을 ar에있는 요소의 곱으로 표현하려고합니다. 예 방법 항목에 대한 알고리즘의 Big O 복잡도
(37, [1,3,5]) 반환 [2,0,7]// arr is an array of divisors sorted in asc order, e.g. [1,3,5]
def method1(num, arr)
newArr = Array.new(arr.size, 0)
count = arr.size - 1
while num > 0
div = arr[count]
if div <= num
arr[count] = num/div
num = num % div
end
count = count - 1
end
return newArr
end
당신이 나에게 알고리즘의 복잡성을 유도하기 위해 도움을 줄 수 있다면
정말 감사겠습니까 . 또한 내 알고리즘의 효율성을 향상 주시기 바랍니다
다음
카운트 초기화 위치는 어디입니까? – Scovetta
Big-O 표기법을 결정하기위한 경험 법칙 : 입력 크기를 두 배로하면 알고리듬이 얼마나 많은 작업을해야 하는가 : (a) 정확히 동일한 입력을 수행하면 아마도 O (1) 일 것이다. (b) 입력이 두 배라면 O (n) 일 것입니다. (c) 입력이 4 배라면 O (n^2) 일 것입니다. – Scovetta
오 카운트를 여기에 포함하는 것을 잊어 버렸습니다. Thanks –