start = 0
while (start!= len(array)-1):
for i in range(start +1,len(array)):
if (array[i]<array[start]):
array[i],array[start] = array[start],array[i]
print(array)
start += 1
在这种情况下,不应像
O(n)= n * [(n-1)+(n-2)+ ....(n-(n-1))]
对于外循环的n次中的每一次,内循环运行diff步,逐渐减少1。这样,O(n)变为(n ^ 3-n ^ 2)/ 2。我的方法有什么问题?? enter code here
答案 0 :(得分:0)
以这种方式看。内循环第一次(start = 0)执行n-1步, 第二次(start = 1),内部循环执行n-2个步骤,依此类推。因此,您有:
(n-1)+(n-2)+ ... + 1步,等于(n ^ 2-n)/ 2步。