我得到一个问题,当给出已经排序的数组时,哪种类型的排序算法将具有最小的时间复杂度。
答案 0 :(得分:4)
维基百科有一张显示comparison of the best, average and worst-case performance of many different sorting algorithms的表格。这是一段摘录:
有许多算法具有()运行时间用于最佳情况输入(即预先排序的数据)。但是,大多数(例如冒泡排序)的平均和最差情况输入的运行时间为(²)。这是你真正想要避免的。使用其中一种算法对一百万个项目进行排序将需要一段时间。
幸运的是,其中一些算法具有(log)平均和最差情况下的运行时间。具体如下:
我建议使用其中一种。
答案 1 :(得分:0)
听起来像是一个家庭作业问题,但我要说的是一个非常简单的算法,它在排序或略微未排序的列表上是时间效率的bubble sort。排序后,时间复杂度为O(n)。也就是说,有许多排序算法在最佳情况下具有相似的时间复杂度(即已经排序),而冒泡排序的最坏情况是O(n 2 )。