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