【发布时间】:2015-01-24 20:08:51
【问题描述】:
在任何语言中排序数组最有效的方法是什么? 具有最低的 O() 和 P()。我发现外壳排序是最好的排序方式之一,但有更快的方法吗?
【问题讨论】:
-
快速排序可能是最快的通用算法,速度为 O(n logn)
-
找出这个问题的答案最有效的方法是什么?谷歌...
标签: algorithm sorting theory any
在任何语言中排序数组最有效的方法是什么? 具有最低的 O() 和 P()。我发现外壳排序是最好的排序方式之一,但有更快的方法吗?
【问题讨论】:
标签: algorithm sorting theory any
简而言之:
Introsort 和 Timsort 是现实世界中最常用的排序算法。
它们在平均复杂度和最坏情况下都具有 O(nlogn) 复杂度,这使得它们在快速排序为 O(n^2) 的特定情况下优于快速排序。 Introsort 用于 C 和 C++ STL,而 Timsort 用于 Python 和 Java 实现(至少用于对 Java 中的对象数组进行排序)。
Shell 排序在 O(n(logn)^2) 中,因此速度稍慢,但使用的内存较少,因此适用于嵌入式系统。详情请见enter link description here
【讨论】: