学习笔记-常见的算法——插入排序(Java)

一,插入排序

插入排序顾名思义就是往元素里按照大小插入元素,从而最终形成一个有序序列,首先初始状态下,将待排序序列中的第一个元素看作是有序的子序列,再将待排元素与元素进行对比,插入序列,前提是不破环子序列

代码如下

public class Demo {
    public static void arrys(int[] list) {
        // 下标1开始遍历
        for (int i = 1; i <list.length; i++) {
            // 要插入的目标元素
            int insert_elem = list[i];
            // 记录目标元素所在的位置,从此位置向前开始遍历
            int position = i;
            // 从 position 遍历,找到目标元素的插入位置
            while (position > 0 && list[position - 1] > insert_elem) {
                // position 处的元素向后移动
                list[position] = list[position - 1];
                position--;
            }
            // 将元素插入到指定位置
            if (position != i) {
                list[position] = insert_elem;
            }
        }
    }
    public static void main(String[] args) {
        int[] list = { 54, 10, 29, 3, 43, 87, 41, 35 };
        arrys(list);
        // 输出排好序的序列
        for (int i = 0; i < list.length; i++) {
            System.out.print(list[i] + " ");
        }
    }
}

写的不好,请见谅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值