【发布时间】:2016-01-10 12:20:24
【问题描述】:
以下的复杂性 - 插入排序、选择排序、合并排序、基数排序并解释哪一种是最好的排序算法,为什么?
【问题讨论】:
标签: array-algorithms
以下的复杂性 - 插入排序、选择排序、合并排序、基数排序并解释哪一种是最好的排序算法,为什么?
【问题讨论】:
标签: array-algorithms
我不相信“最佳”排序算法。这取决于你想做什么。例如,冒泡排序真的很容易实现,如果您只是想要一种快速而肮脏的方式来对短数组进行排序,那将是最好的。另一方面,对于较大的数组,时间复杂度将真正发挥作用,您会注意到相当大的运行时差异。如果你真的很看重内存,那么你可能想要评估它们的空间复杂度。
所以排序答案是:恕我直言,没有最好的排序算法。我将留下下表供您自己评估您要使用的内容。
排序算法平均时间复杂度空间复杂度
快速排序 O(nlog(n )) O(log(n))
合并排序 O(nlog(n)) O( n)
插入排序 O(n^2) O(1)
选择排序 kbd>O(n^2) O(1)
基数排序 O(nk) O(n+k)
【讨论】: