Java:使用sort方法对整个数组或部分数组进行排序的问题

2024年11月29日 02:38
有5个网友回答
网友(1):

额,他只是为了让你明白sort(char,1,3)是从第1个开始,到第3个(但是不包括第3个)的字符进行排序。

网友(2):

这里写3-1是告诉你2是怎么来的啊,java中大部分区间都是左闭右开的,就是包含左边的数字,不包含右边的数字,这里就是[1,3)--等价于-->[1,2]

网友(3):

是为了突出后面两个参数的意义:第一个整数表示:从哪个下标开始(包括该元素)第一个整数表示:到哪个下标结束(注意:不包括该元素)这就是原因,为了表示不包括该下标的元素

网友(4):

额,,, 数组 是从0开始的. 所以呢1,3 那么就是0 1 2 这三个元素

网友(5):

JDK API 1.6的解释:
public static void sort(double[] a,int fromIndex,int toIndex)
对指定 double 型数组的指定范围按数字升序进行排序。排序的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则排序范围为空。)
虽然 < 关系式对不同数字 -0.0 == 0.0 返回的结果为 true,并且认为 NaN 值既不小于或大于任何浮点值,也不等于任何浮点值,甚至不等于它自身。但 < 关系式不能提供所有浮点值的整体排序。为了允许进行排序,此方法不使用 < 关系式来确定数字升序排序,而是利用 Double.compareTo(java.lang.Double) 来完成整体排序。此排序法不同于 < 关系式,其中 -0.0 被认为是小于 0.0 的值,并且 NaN 被认为大于其他任何浮点值。为了进行排序,所有 NaN 值都被认为是等效且相等的。
该排序算法是一个经过调优的快速排序法,改编自 Jon L. Bentley 和 M. Douglas McIlroy 合著的 Engineering a Sort Function", Software-Practice and Experience Vol. 23(11) P. 1249-1265 (November 1993)。此算法在许多数据集上提供 n*log(n) 性能,这导致其他快速排序会降低二次型性能。
参数:a - 要排序的数组
fromIndex - 要排序的第一个元素的索引(包括)
toIndex - 要排序的最后一个元素的索引(不包括)
抛出:IllegalArgumentException - 如果 fromIndex > oIndex
ArrayIndexOutOfBoundsException - 如果 fromIndex < 0 或 toIndex > a.length