我在這裏是新來的,所以削減我的一些鬆懈,讓我知道如果我的問題可以有任何改進。算法複雜性分析
所以我和一位朋友對算法的複雜性有點不同意。他似乎確定該算法有O(n^2)的大O符號,但我只是覺得它的O(n)我們可以有一些指針,希望結束我們的論點哈!
的算法:
Input: Matrix M[1..n][1..n]
Output: boolean true if M is lower triangular
begin isLowerTriangular(Matrix[][] M, size n)
for i:=1 to n-1 loop
for j:=i+1 to n loop
if M[i][j] != 0
return false
return true
end isLowerTriangular
這是O(n^2)導致迭代的總NUMER約爲'N *(N-1)/ 2' –
沒有,如何將遍歷只有一次?它將迭代到'n'。所以如果'i + 1 = 2'和'n = 100'它會迭代98次 –