我有以下僞代碼:如何判斷這些嵌套語句執行多少次?
SelectionSort(A)
n = A.length
for j=1 to n-1
smallest = j
for i=(j+1) to n
if A[i] < A[smallest]
smallest = i
exchange A[j] with A[smallest]
我認爲第一for循環測試將執行n次,並且嵌套for循環將執行1 + 2 + ... + N = N(N +1)/ 2次(如果我錯了,請糾正我)。但我不明白我怎麼知道嵌套的if語句會執行多少次?是1/2 * n(n + 1)/ 2嗎?
但不會內循環運行N次第一迭代外環,當j = 1時? –
@ AliMustafa-No,因爲我的值將被設置爲2(因爲i = j + 1),這意味着它將迭代從i = 2到i = n的循環,意味着共有n-1次迭代。 –
好的,你能否看到我是否正確:外部for-loop頭執行n次,外部for循環體執行n-1次?內部for-loop頭執行n次,內部for循環體執行n-1次?當j = 1時 –