5.简单排序之插入排序


原理:

把所有的元素分为两组,一组为排序过得,一组为未排序过得。
每轮取未遍历组中第一个元素a,然后从后往前遍历已排序组,将a和当前索引对应的值进行比较,直到找到一个元素小于等于a,然后将a插入这个元素之后,原先这个元素之后的元素都想后移动一位。

代码实现

package china.guo.calc.simplesort;

import java.util.Arrays;

//插入排序
public class Insert {

    //排序
    public static void sort(Comparable[] array) {
        for (int i =1;i0; j--) {
                if (greater(array[j],array[j-1])){
                    break;
                }else{
                    exchange(array,j,j-1);
                }
            }
        }

    }

    //比较c1和c2大小
    public static boolean greater(Comparable c1,Comparable c2){
        return c1.compareTo(c2)>0;
    }

    //交换索引i和索引j处的元素位置
    public static void exchange(Comparable[] array,int i,int j){
        Comparable temp;
        temp = array[i];
        array[i]=array[j];
        array[j]=temp;
    }

    public static void main(String[] args) {
        Integer[] array = new Integer[]{4,5,3,6,1,2};
        sort(array);
        System.out.println(Arrays.toString(array));
    }
}

你可能感兴趣的:(5.简单排序之插入排序)