【问题标题】:Time Complexity of Selection sort选择排序的时间复杂度
【发布时间】:2019-10-19 04:42:21
【问题描述】:
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 步骤逐渐减少一。这样,O(n) 变为 (n^3 - n^2)/2。我的方法有什么问题?enter code here

【问题讨论】:

标签: time-complexity selection-sort


【解决方案1】:

这样看。第一次 (start=0) 内循环执行 n-1 步, 第二次(start=1)内部循环执行 n-2 步,依此类推。这样你就有了:

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

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2021-05-30
    相关资源
    最近更新 更多