黑马程序员技术交流社区

标题: 求助关于arrays.sort()函数 [打印本页]

作者: 尹博    时间: 2012-4-3 21:59
标题: 求助关于arrays.sort()函数
请问哪位大大知道java中用于数组排序的arrays.sort()函数是用的哪种排序算法?是不是快速排序?
作者: 秦超    时间: 2012-4-3 22:08
用了两种排序算法
快速排序和合并排序
快速排序主要是对基本类型数据(int,short,long等)排序, 而合并排序用于对对象类型进行排序。

作者: niceBoy    时间: 2012-4-3 22:26
Arrays.sort()的源码是:
public static void sort(int[] a) {
        DualPivotQuicksort.sort(a);
}
DualPivotQuicksort你可以百度下看下源码,我是没看过
作者: 秦岩    时间: 2012-4-3 22:27

java中的数组排序。
  Arrays.sort(*Array) 需加包import java.util.*;或import java.util.Arrays;
  Arrays.sort(数组名)为数组排序的操作,但这个方法在 java.util 这个包里面,所以在用到的时候需要先将它导入
  1.  // 以下程序是数组的排序操作,在这里使用了 sort 方法对数组进行排序   import java.util.*;   public class array004   {   public static void main(String[] args)   {   int a[] = {4,32,45,32,65,32,2} ;   System.out.print("数组排序前的顺序:");   for(int i=0;i<a.length;i++)   System.out.print(a[i]+" ");   Arrays.sort(a);// 数组的排序方法   System.out.print("\n数组排序后的顺序:");   for(int i=0;i<a.length;i++)   System.out.print(a[i]+" ");   System.out.print("\n");   }   }   输出结果:   数组排序前的顺序:4 32 45 32 65 32 2   数组排序后的顺序:2 4 32 32 32 45 65
复制代码

作者: 郑苑东    时间: 2012-4-3 22:32
本帖最后由 郑苑东 于 2012-4-3 22:33 编辑

在java.util.Arrays中。安装jdk时在jdk 的安装目录下会有一个src.zip的东西。。打开在里面可以看到。。如果真的想看源代码的话,或者关联的eclipse上。写一个Arrays.sort();方法。ctrl按住。鼠标点中就可以跟进去里面查看了。。。
作者: 张志阳    时间: 2012-4-3 22:32
两种排序方法:对基本数据类型用了 一个经过调优的快速排序法,对指定对象用了一个经过修改的合并排序算法。
作者: 尹博    时间: 2012-4-3 22:55
知道了,谢谢各位~~
作者: 陈苓    时间: 2012-4-4 01:54
   肯定选择高效的,选择排序是每个元素都要和该数组的下一个元素进行比较。冒泡是相邻的两个元素进行比较。相对来讲冒泡排序会比选择排序的速度快。但是实现的结果都是一样




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2