java排序算法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java排序算法

java排序算法

 2012/3/6 13:51:25  haoran_10  程序员俱乐部  我要评论(0)
  • 摘要:Java中有两个对数组排序的静态算法,这里用了小例子测试了下效率packagealgorithm;importjava.util.Arrays;importjava.util.Collections;importjava.util.List;importjava.util.Random;publicclassSortTest{publicstaticvoidmain(String[]args){int[]arr=getArr();testCollections(arr);testArrays
  • 标签:Java 算法

Java中有两个对数组排序的静态算法,这里用了小例子测试了下效率

?

package algorithm;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class SortTest {
	public static void main(String[] args) {
		int[] arr = getArr();
		testCollections(arr);
		testArrays(arr);
	}
	public static int[] getArr(){
		int[] arr = new int[10000];
		Random random = new Random();
		for (int i = 0; i < arr.length; i++) {
			arr[i] = random.nextInt(1000);// 随机生成0-999的数字
		}
		return arr;
	}
	
	public static void testArrays(int[] arr) {
		long startTime = System.currentTimeMillis();
		Arrays.sort(arr);// Arrays的排序方法
		long endTime = System.currentTimeMillis();

		System.out.println(endTime - startTime);
//		for (int i = 0; i < arr.length; i++) {
//			System.out.print(arr[i] + "\t");
//			if ((i + 1) % 10 == 0 && i != 0) {
//				System.out.println();
//			}
//		}
	}
	
	public static void testCollections(int[] arr){
		Integer arr1[] = new Integer[arr.length];
		for(int i=0;i<arr.length;i++){
			arr1[i] = arr[i];
		}
		List list = Arrays.asList(arr1);//首先把数组转换为List
		
		long startTime = System.currentTimeMillis();
		Collections.sort(list);//使用Collections排序算法:快速排序
		long endTime = System.currentTimeMillis();
		
		System.out.println(endTime - startTime);
//		for(int i=0;i<list.size();i++){
//			System.out.print(list.get(i));
//			if ((i + 1) % 10 == 0 && i != 0) {
//				System.out.println();
//			}
//		}
	}
}

经过测试,发现Arrays.sort()方法要稍微快一些,但是Collections.sort()支持自己选择比较器

?

发表评论
用户名: 匿名