Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Arrays 什么是「;分区数量“;及;“范围”;数组的类型?_Arrays_Sorting - Fatal编程技术网

Arrays 什么是「;分区数量“;及;“范围”;数组的类型?

Arrays 什么是「;分区数量“;及;“范围”;数组的类型?,arrays,sorting,Arrays,Sorting,根据MSDN文件 如果分区数超过2*logN,其中N是输入数组的范围,则使用Heapsort算法 我不知道的是一个数组的“分区数”和“范围”是多少。它们是什么?排序中的分区基本上是基于轴心点的列表的一部分。例如,使用快速排序算法对以下内容进行排序: First Pass Second Pass 3 3 1 8 1 3

根据MSDN文件

如果分区数超过2*logN,其中N是输入数组的范围,则使用Heapsort算法


我不知道的是一个数组的“分区数”和“范围”是多少。它们是什么?

排序中的分区基本上是基于轴心点的列表的一部分。例如,使用快速排序算法对以下内容进行排序:

                First Pass          Second Pass
3              3                     1
8              1                     3
5 <- Pivot     5---------            5
1              8                     7
7              7                     8

分区基本上是分区的另一个词,当您创建一个轴点对列表进行排序时,有两个分区,轴的两侧各一个,范围是一个数学术语,很容易googlable@Cole“Cole9”Johnson如果它写在MSDN上,那么它很重要。否则他们就不会写在MSDN上。@Sayse可能想解释一棵树…@Cole“Cole9”Johnson是的,在某些情况下,程序员了解集合的排序方式很重要。例如,如果我有类似于
B1,A1,C1,A2
的东西,我只想对字母进行排序,我希望
A1,A2,B1,C1
,但快速排序可以给我
A2,A1,B1,C1
,这是因为快速排序不稳定。@xanatos-OP引用的完整引用表示该数组。排序将使用帮助!我有和OP相同的问题,这个答案并没有为我澄清。MSDN页面介绍了一种适用于任何类型数组的排序方法,您可以假设我们正在对数字进行排序!如果我对字符串进行排序,这是如何工作的(尤其是“范围”?第二,你指的是“第一关”——为什么只有一关?第三,范围有什么那么重要?排序[1,2,3,4]或[-100,010099999]有什么不同,需要两种完全不同的算法来执行这些任务?数组的“范围”实际上是它的长度,而不是它的最大值和最小值之间的差异。(我有点困惑;似乎
Array.Sort
不太可能在开始之前对数组执行最小/最大操作。)
 (2 * log(7)) > 2    == Use HeapSort
 1.691 > 2              false