美文网首页
排序-插入排序

排序-插入排序

作者: KeDaiBiaO1 | 来源:发表于2017-10-09 16:40 被阅读0次

    插入排序比较适用于 有序的输入

    插入排序是和整理纸牌的时候是一样的
    当摸一张牌的时候,把当前这张牌插入到指定位置

    可以拿这张牌的值和前面的比较,如果比前面的牌小则和前面的牌交换

    此时j-1 ,当前牌索引也因交换-1
    当出现当前牌大于前面的牌(因为前面的牌从小到大排序,出现大于则已经到正确的位置了)则跳出

    @Test
        public void test(){
            int[] a = {4, 2, 5, 3, 1, 0};
            sort(a);
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + ",");
            }
        }
        public void sort(int[] a){
            for (int i = 1; i < a.length; i++) {
                for (int j = i; j > 0 && less(a[j], a[j - 1]); j--) {
                    exch(a, j, j-1);
                }
            }
    
        }
        
        private boolean less(int i, int j) {
            return i > j ? false : true;
        }
    
        private void exch(int[] a, int m, int n) {
            int tmp = a[m];
            a[m] = a[n];
            a[n] = tmp;
        }   
    

    相关文章

      网友评论

          本文标题:排序-插入排序

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