直接插入排序

本文详细介绍了直接插入排序的算法思想与实现步骤。直接插入排序通过将每个元素插入到已排序的序列中找到其正确位置,逐步构建出完整的有序序列。提供的Java代码示例展示了如何从小到大进行排序,通过交换操作确保序列的正确性。
摘要由CSDN通过智能技术生成

直接插入排序

  1. 算法思想

    对于一组数据,只有一个数时,一定有序。因此只需要从第二个数开始确定它在有序序列中的位置,然后将其移到该位置

  2. 算法实现步骤

/**
 * 直接插入排序(从小到大)
 * 从第二位开始,依次向前比较,如果遇到比它大的移动位置
 */
public static void insertDirectly(int[] A) {
    int[] array = A;
    System.out.println("初始:");
    inputArray(array);
    int len = array.length;
    for (int i = 1; i < len; i++) {

        // 0 到 i - 1 这个序列一定是有序的,若 array[i] > array[i - 1] 此时的元素已经在它应在的位置上
        // 所以只需要考虑当前元素在有序序列中的位置
        for (int j = i; j > 0 && array[j] < array[j - 1]; j--) {
            array[j] = array[j] ^ array[j - 1];
            array[j - 1] = array[j] ^ array[j - 1];
            array[j] = array[j] ^ array[j - 1];
        }
    }
    System.out.println("直接插入排序:");
    
    inputArray(array);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值