读书人

java实现冒泡排序取舍排序插入排序

发布时间: 2013-09-18 14:17:40 作者: rapoo

java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试

1、冒泡排序是排序里面最简单的了,但性能也最差,数量小的时候还可以,数量一多,是非常慢的。

它的时间复杂度是O(n*n),空间复杂度是O(1)

代码如下,很好理解。

public static void main(String[] args) throws Exception{int[] arr1=new int[6000];for(int i=0;i<arr1.length;i++){arr1[i]=new Random().nextInt(6000)+1;}int[] arr2=new int[6000];for(int i=0;i<arr2.length;i++){arr2[i]=new Random().nextInt(6000)+1;}int[] arr3=new int[6000];for(int i=0;i<arr3.length;i++){arr3[i]=new Random().nextInt(6000)+1;}int[] arr4=new int[6000];for(int i=0;i<arr4.length;i++){arr4[i]=new Random().nextInt(6000)+1;}Test t=new Test();long m=System.currentTimeMillis();t.bubbleSort(arr1);long n=System.currentTimeMillis();System.out.println("冒泡排序耗时:"+(n-m)+"ms");long p=System.currentTimeMillis();t.chooseSort(arr2);long q=System.currentTimeMillis();System.out.println("选择排序耗时:"+(q-p)+"ms");long e=System.currentTimeMillis();t.insertSort(arr4);long d=System.currentTimeMillis();System.out.println("插入排序耗时:"+(d-e)+"ms");long a=System.currentTimeMillis();t.quickSort(arr3, 0, arr3.length-1);long b=System.currentTimeMillis();System.out.println("快速排序耗时:"+(b-a)+"ms");}}

结果如下:

冒泡排序耗时:182ms

选择排序耗时:120ms

插入排序耗时:4ms

快速排序耗时:1ms

见识到快速排序的威力了吧~不过他也是付出了内存空间的代价,如果数据量过大,会出现著名的StackOverFlow栈溢出异常哦~




读书人网 >编程

热点推荐