已排序数组的时间复杂度最小的排序算法?

时间:2017-07-12 19:07:54

标签: algorithm sorting time-complexity

我得到一个问题,当给出已经排序的数组时,哪种类型的排序算法将具有最小的时间复杂度。

2 个答案:

答案 0 :(得分:4)

维基百科有一张显示comparison of the best, average and worst-case performance of many different sorting algorithms的表格。这是一段摘录:

enter image description here

有许多算法具有()运行时间用于最佳情况输入(即预先排序的数据)。但是,大多数(例如冒泡排序)的平均和最差情况输入的运行时间为(²)。这是你真正想要避免的。使用其中一种算法对一百万个项目进行排序将需要一段时间。

幸运的是,其中一些算法具有(log)平均和最差情况下的运行时间。具体如下:

我建议使用其中一种。

答案 1 :(得分:0)

听起来像是一个家庭作业问题,但我要说的是一个非常简单的算法,它在排序或略微未排序的列表上是时间效率的bubble sort。排序后,时间复杂度为O(n)。也就是说,有许多排序算法在最佳情况下具有相似的时间复杂度(即已经排序),而冒泡排序的最坏情况是O(n 2 )。