选择排序的时间复杂度

时间:2019-06-03 15:39:19

标签: time-complexity selection-sort

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

1 个答案:

答案 0 :(得分:0)

以这种方式看。内循环第一次(start = 0)执行n-1步, 第二次(start = 1),内部循环执行n-2个步骤,依此类推。因此,您有:

(n-1)+(n-2)+ ... + 1步,等于(n ^ 2-n)/ 2步。