直接插入排序(Straight Insertion Sort)代码及分析注释

class StraightInsertionSort {// 直接插入排序
    public static int[] SISort(int[] array) {
        for (int round = 1; round < array.length; round++)// 控制比较的趟数、指针的起点:从前向后依次插入
        {
            if (array[round] < array[round - 1]) {// 当待插入数小于前一个数才开始排序,如果大于(或等于)则直接插入了
                int index = round;// 记录待插入位置的索引
                int tmp = array[round];// 记录需要插入的元素的值
                for (; index > 0 && tmp < array[index - 1]; index--) {// 从指针起点index依次向前(index--)比较,直到与array[0]比较(index>0),当待插入数tmp小于前一个数时,则执行...
                    array[index] = array[index - 1];// 将前一个数向后挪一位
                }
                // 当比较完array[0]或待插入值tmp大于前一个数时,将待插入数插入指针位置
                array[index] = tmp;
            }
        }
        return array;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值