A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尹博 中级黑马   /  2012-4-3 21:59  /  2966 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问哪位大大知道java中用于数组排序的arrays.sort()函数是用的哪种排序算法?是不是快速排序?

7 个回复

倒序浏览
用了两种排序算法
快速排序和合并排序
快速排序主要是对基本类型数据(int,short,long等)排序, 而合并排序用于对对象类型进行排序。
回复 使用道具 举报
Arrays.sort()的源码是:
public static void sort(int[] a) {
        DualPivotQuicksort.sort(a);
}
DualPivotQuicksort你可以百度下看下源码,我是没看过
回复 使用道具 举报

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:33 编辑

在java.util.Arrays中。安装jdk时在jdk 的安装目录下会有一个src.zip的东西。。打开在里面可以看到。。如果真的想看源代码的话,或者关联的eclipse上。写一个Arrays.sort();方法。ctrl按住。鼠标点中就可以跟进去里面查看了。。。
回复 使用道具 举报
两种排序方法:对基本数据类型用了 一个经过调优的快速排序法,对指定对象用了一个经过修改的合并排序算法。
回复 使用道具 举报
知道了,谢谢各位~~
回复 使用道具 举报
   肯定选择高效的,选择排序是每个元素都要和该数组的下一个元素进行比较。冒泡是相邻的两个元素进行比较。相对来讲冒泡排序会比选择排序的速度快。但是实现的结果都是一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马