算法 - 插入排序

案例: 打扑克牌,我们按数字从小到大放置。。 我们摸到 牌 4 , 然后摸到2 ,那么2和4换位, 然后摸到 1 ,把4放到第三张,然后把2放到第二张,然后把1 放到第一张。。

现有牌 

2 4

摸到牌 1  ,,  定义一个key 存放1 。。  然后依次比较现有的牌。。 4比1 大,,把4往后放。

2 4 4

然后2比1大,把2往后放

2 2 4

比较完成后,把1 放到最后发生移动的位置。即2的位置。。 

1 2 4

 

java代码实现如下

      

package com.mytest.algorithm;

import com.sun.deploy.util.ArrayUtil;

import java.util.Arrays;

/**
 * @author zhangc
 * @since 2018/9/12 15:15
 * 插入排序
 **/
public class InsertSort {

    public static void main(String[] args) {
        int[] a = {5,2,1,6,3,4};
        for(int i=1;i<a.length;i++){
            int key = a[i];
            int j = i-1;
            while (j>=0 && key<a[j]){ //拿当前的牌依次和前面的牌比较,如果成立就将被比较的牌换到该牌的后一位。
                a[j+1] = a[j];
                j --;
            }
            a[j+1] = key;
        }

        System.out.println(Arrays.toString(a));
    }


}

  

 

 

  

  

 

 

 

              

 

posted on 2018-09-13 09:34  远方的人  阅读(137)  评论(0编辑  收藏  举报

导航