当找到插入排序的最坏情况分析时,有人可以逐步解释我们如何获得O(N ^ 2)吗?我正在阅读Cormen Intro to Algorithms一书的解释,但这种解释有点令人困惑。
答案 0 :(得分:6)
简而言之,最差情况是指您的列表与您需要的顺序完全相反。在那种情况下:
如果你将最坏情况下的的比较数加起来,你会发现它是0 + 1 + 2 + ... + n-1
,等于(n^2 - n) / 2
的比较最坏的情况,即O(n ^ 2)。 (确定复杂性的部分是当我们考虑大n
时,在这种情况下,n ^ 2项占主导地位)
答案 1 :(得分:0)
插入排序在几乎排序的输入上快速工作,因此要进行最坏情况分析,您可以使用数字按降序排列。
好像数字按降序排列,那么你需要在第i次迭代中移动(i-1)个数,因此T(n) = sum(i-1) for i in range(1,n) = n*(n-1)/2 = O(n^2)