二进制搜索的重复发生(将元素插入数组的时间)

时间:2018-05-03 08:41:23

标签: arrays sorting

  

我们可以将插入排序表达为递归过程,如下所示。在   为了排序。为了对A [1..n]进行排序,我们递归地对A [1..n-1]进行排序   然后将A [n]插入到已排序的数组A [1..n-1]中。写一个   此递归插入版本的运行时间重复   排序

很明显,对数组进行排序需要T(n-1)次(因为我们不需要对最后一个元素进行排序)。但我不明白为什么需要O(n)将元素插入到排序数组中。

假设我们有一个数组:A = 41;52;26;38;57;9;49.最糟糕的情况是,我们必须遍历整个数组才能在数组的开头插入最后一个元素n。但我想,它需要O(n-1)时间,因为我们经历了数组中的n-1个元素。

你能解释我的错误和正确答案的逻辑吗?

1 个答案:

答案 0 :(得分:0)

没有像O(n-1)那样的东西。 在Big O表示法中忽略常量。所以它的O(n)。 您需要清除算法分析的基础知识。

你可以参考这里

https://www.geeksforgeeks.org/fundamentals-of-algorithms/#AnalysisofAlgorithms