排序算法

    public static void swep(Integer[] data, int i, int j){
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }

1.冒泡排序

        Integer[] data = {6, 3, 1, 5, 7, 9, 0, 2, 8};
        for (int i = 0; i < data.length ; i++ ) {
            for (int j = 1; j < data.length-i; j++ ) {
                if(data[j-1] > data[j]){
                    swep(data, j-1, j);
                }
            }
        }

2.选择排序(先找出最小的index,跟第一个交换, 再从第2个后找出最小,跟第2个交换..依次类推)

        Integer[] data = {6, 3, 1, 5, 7, 9, 0, 2, 8};
        
        for (int i = 0; i < data.length ; i++ ) {
            int min = i;
            for (int j = i+1; j < data.length; j++ ) {
                
                if(data[min] > data[j]){
                    min = j;
                }
            }
            swep(data, min, i);
        }

3.直接插入排序(首先第一个元素肯定是有序的,然后让第2个跟第一个比较后形成有序的2个元素,然后让第3个跟前面有序的2个元素比较形成有序的3个元素..依次类推)

public static void insertionSort(){
        int o = 0;
        for (int i = 1; i < data.length; i++) {
            for (int j = i; j > 0; j--) {
                if(data[j-1] > data[j]){
                    swep(data, j-1, j);
                    ++o;
                }
            }
        }
        System.out.println("复杂度为:"+o);
    }

 

posted @ 2017-03-14 23:46  奇奇小唱  阅读(102)  评论(0编辑  收藏  举报