我们可以将插入排序表达为递归过程,如下所示。在 为了排序。为了对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个元素。
你能解释我的错误和正确答案的逻辑吗?
答案 0 :(得分:0)
没有像O(n-1)那样的东西。 在Big O表示法中忽略常量。所以它的O(n)。 您需要清除算法分析的基础知识。
你可以参考这里
https://www.geeksforgeeks.org/fundamentals-of-algorithms/#AnalysisofAlgorithms