冒泡排序 和选择排序 性能比较

根据9000长度的 随机数组比较:
冒泡排序花费时间96ms
选择排序花费时间130ms

代码如下:

package testDemo;

import java.util.Arrays;

public class testArraySort {

    public static void main(String[] args) {
        //数组长度
        int length = 9000;
        int[] array = createRandomArray(length);
        //打印数组
        System.out.println("原数组"+Arrays.toString(array));

        //直接排序
        /*long start = System.currentTimeMillis();
        int[] selectSort = selectSort(array);
        long end = System.currentTimeMillis();
        System.out.println("选择排序花费时间"+(end-start));
        System.out.println("选择排序后的数组"+Arrays.toString(selectSort));*/

        //调用冒泡排序
        long start1 = System.currentTimeMillis();
        int[] bubbleSort = bubbleSort(array);
        long end1 = System.currentTimeMillis();
        System.out.println("冒泡排序花费时间"+(end1-start1));
        System.out.println("冒泡排序后的数组"+Arrays.toString(bubbleSort));

    }

    public static int[] selectSort(int[] arr){
        for(int x=0; x<arr.length-1; x++){
            //为什么y的初始化值是 x+1?因为每一次比较,都用x角标上的元素和下一个元素进   行比较。
            for(int y=x+1; y<arr.length; y++){
                if(arr[x]>arr[y])
                {
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
        }
        return arr;
      }



    public static int[] bubbleSort(int[] arr){
        for(int x=0; x<arr.length-1; x++){
            for(int y=0; y<arr.length-x-1; y++){//-x:让每次参与比较的元减。//-1:避免角标越界。
                if(arr[y]>arr[y+1])
                {
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
        return arr;
}


    private static int[] createRandomArray(int length) {
        int[] array = new int[length];

        for(int i=0;i<array.length;i++){

        array[i] = (int)(Math.random()*length);

        }

        return array;
    }





}
阅读更多
个人分类: java
上一篇利用freemarker 在模板里面写入动态数据,动态表格,图片插入并生成word文档
下一篇当浏览器禁用了cookie,java实现传递JSESSIONID
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭