美文网首页
算法(第四版)插入排序

算法(第四版)插入排序

作者: 博林木木 | 来源:发表于2016-11-02 11:45 被阅读0次
    package suanfa;
    
    import com.algs4.stdlib.StdOut;
    
    /**
     * Created by evan on 16/11/1.
     * name 插入排序
     */
    public class InsertSorting {
    
        public static void main(String[] args){
            Integer[] cpr = {121,3,1,22,44,12,5,6,23,664,22,34};
            sort(cpr);
            for (Integer value:cpr) {
    
                StdOut.println(value);
            }
    
        }
    
        public static void sort(Comparable[] cprList){
            int N = cprList.length;
            for (int i = 1;i < N;i++){
                for(int j = i;j>=1 && less(cprList[j],cprList[j-1]);j--){
                    exch(cprList,j,j-1);
                }
    
            }
        }
    
    
        public static void exch(Comparable[] a,int b,int c){
    
            Comparable t = a[b];
            a[b] = a[c];
            a[c] = t;
            return;
    
        }
    
        public static Boolean less(Comparable a, Comparable b){
    
            return a.compareTo(b) < 0;
    
        }
    }
    
    

    在一个有序的数列中插入一个数,将数从右到左对比知道走到合适的位置
    永远维护一个有序的数组,每次“插入”一个新的数是都要整理数组保持数组有序

    相关文章

      网友评论

          本文标题:算法(第四版)插入排序

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