插入排序

本文详细介绍了插入排序算法的基本原理和实现过程。通过将数组分为已排序和未排序两部分,逐步将未排序的数据插入到已排序的正确位置。提供了Java和Python两种语言的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发过程中可能不会常用到复杂的算法。不过排序还是很常见的。今天学习一下插入排序(insertIntoSort)。

插入排序简单来说就是将一个数组分成两部分,前面部分是排好序的,后面部分是乱序的。通过将乱序部分的数值在有序的部分找到合适的位置,并将其插入进去。

在算法导论中,伪代码描述的for循环是2~A.length()。是因为书中假定数组开始位置是从1开始的,而实际数组开始是从0开始的,所以在写代码的时候要留意(记录下来,怕忘记)。


上代码好了 ,Java:

 

 private static void insterIntoSort(int arr[]) {
        int key = 0;//当前准备插进去的数值
        int i = 0;
        for (int j = 1; j < arr.length; j++) {
            i = j - 1;
            key = arr[j];
            while (i >= 0 && arr[i] > key) {
                arr[i+1] = arr[i]; //这里用i+1不用j的原因是,因为在while循环里,是从左往右找合适位置
                i = i-1;
            }
            arr[i+1] = key; //把key放到合适的位置
        }
    }
另外,最近在学python,也上一份python的代码

def insert_into_sort(array):#函数定义
    for j in range(1, len(array)):
        print j
        key = array[j]
        i = j - 1
        while i >= 0 and array[i] > key:
            print "i=%d" % i
            array[i + 1] = array[i]
            i = i - 1       #while循环结束
        array[i + 1] = key
        #for循环结束
    print array
#insert_into_sort函数结束

# insert_into_sort([2, 1, 5, 8, 7, 3])
insert_into_sort([5, 2, 4, 6, 1, 3])    #函数调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值