算法__插入排序

插入排序:就是将数据插入到已经排好序的数列中,使得最终的数列顺序正确。

举个例子:

58352

第一轮:

这个数组,我们可以先把 5 这个第一位数字视为已经排好的数列,将8加入顺序排好的队列中。

1.  8和5做比较,8大于5,所以8排在5右边;

58352

第二轮:

现在 5  8  就是已经排好的数组,将3插入这个队列中。

1.  8和3比较,3比8小,3应该排在8的左边(代码中实现可以只将8移动到3的位置,3先拿一个数字缓存,最后找到自己位置再赋值,减少每次数字互换)

2.  3和5比较,3比5小,3应该在5的左边;

35852

第三轮:

3  5  8 是有序数组,将5插入。

1.  5和8比较,5小,5在8左边;

2.  5和5比较,5不比左边5小,不交换;

35582

第四轮:

3  5  5  8 是有序数组,将2插入。

1.  2和8比较,2小,2在8左边;

2.  2和5比较,2小,2在5左边;

3.  2和5比较,2小,2在5左边;

4.  2和3比较,2小,2在3左边;

23558

代码如下:

    private int[] querySort1(int array[]) {
        for (int i = 1; i < array.length; i++) {
            int temp = array[i];
            int j = i - 1;
            for (; j >= 0 && temp < array[j]; j--)
                array[j + 1] = array[j];
            array[j + 1] = temp;
        }
        return array;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值