Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 对arrya进行排序的最有效方法_Algorithm_Sorting_Theory_Any - Fatal编程技术网

Algorithm 对arrya进行排序的最有效方法

Algorithm 对arrya进行排序的最有效方法,algorithm,sorting,theory,any,Algorithm,Sorting,Theory,Any,在任何语言中,排序数组最有效的方法是什么? 具有最低的O()和P()。我发现shell排序是最好的排序方法之一,但是有更快的方法吗 简而言之: Introsort和Timsort是现实世界中最常用的排序算法 它们的平均复杂度为O(nlogn),在最坏的情况下复杂度为O(n^2),这使得它们在快速排序为O(n^2)的特定情况下优于快速排序。在C和C++ STL中使用了内嵌排序,TyPo排序被用于Python和java实现(至少用于java中的对象数组排序)。 Shell排序为O(n(logn)^2

在任何语言中,排序数组最有效的方法是什么? 具有最低的O()和P()。我发现shell排序是最好的排序方法之一,但是有更快的方法吗

简而言之:

Introsort和Timsort是现实世界中最常用的排序算法

它们的平均复杂度为O(nlogn),在最坏的情况下复杂度为O(n^2),这使得它们在快速排序为O(n^2)的特定情况下优于快速排序。在C和C++ STL中使用了内嵌排序,TyPo排序被用于Python和java实现(至少用于java中的对象数组排序)。
Shell排序为O(n(logn)^2),因此速度稍慢,但占用的内存较少,因此适用于嵌入式系统。有关更多详细信息,请参见

快速排序可能是最快的通用算法,速度为O(n logn)。找到此问题答案的最有效方法是什么?Google…堆排序使用O(1)内存和O(nlogn)时间,这不是比shell排序更好吗?是的,它的内存使用量也很小,但比较嵌入式系统中的排序算法是一个微妙的课题。见:例如