美文网首页
5.简单排序之插入排序

5.简单排序之插入排序

作者: 穹生变 | 来源:发表于2021-03-01 09:01 被阅读0次

    原理:

    把所有的元素分为两组,一组为排序过得,一组为未排序过得。
    每轮取未遍历组中第一个元素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;i<array.length; i++) {
                for (int j = i; j >0; 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.简单排序之插入排序

          本文链接:https://www.haomeiwen.com/subject/bvoifltx.html