查看以下代码:
Algorithm sort
Declare A(1 to n)
n = length(A)
for i = 1 to n
for j = 1 to n-1 inclusive do
if A[i-1] > A[i] then
swap( A[i-1], A[i] )
end if
next j
next i
算法评估
比较
唯一的比较出现在j循环中。 由于此循环将迭代总共n ^ 2 次,它会执行 完全是n ^ 2
数据交换
注意:计算可能包括赋值操作,但这些不会影响总时间,因此忽略
有人可以解释这些答案的来源吗?
谢谢!
答案 0 :(得分:0)
这是我对标记方案的看法,明确标记了他们正在计算的操作。看起来他们正在计算作业(但很方便地忘记了进行交换需要2或3个作业)。这就解释了为什么他们计算增量而不是[i-1]
索引。
i loop runs n times
j loop runs n-1 times (~n^2-n)
swap (happens n^2 times) n^2
+=
)i loop runs n times
j loop runs n-1 times (~n^2)
increment j (happens n^2 times) n^2
increment i (happens n times) n
sum: 2n^2 + n