Python插入排序

本文详细介绍了插入排序算法的工作原理,包括将未排序元素逐个插入已排序序列的过程,以及其时间复杂度。通过Python代码示例展示了如何实现这一算法,适用于初学者学习排序算法的基础知识。
摘要由CSDN通过智能技术生成

插入排序是一种简单直观的排序算法,其基本思想是将数组分为已排序区间和未排序区间,初始时已排序区间只包含第一个元素,然后逐步将未排序区间的元素插入到已排序区间的合适位置,直到整个数组有序。

具体步骤如下:

这样,整个算法就完成了对输入数组的排序。插入排序的时间复杂度为O(n^2),是一种简单但有效的排序算法。    3.key = arr[i] 和 j = i - 1 - 将当前需要插入的元素保存在key变量中,并将已排序区间的最后一个元素的索引保存在j变量中。     4.while j >= 0 and key < arr[j]: - 进入一个循环,该循环用于将当前元素插入到已排序区间的合适位置。条件j >= 0确保我们不会越界,条件key < arr[j]表示当前元素小于已排序区间中的某个元素。           5.arr[j + 1] = arr[j] 和 j -= 1 - 将已排序区间中大于当前元素的元素依次后移,为当前元素腾出位置。          6.arr[j + 1] = key - 将当前元素插入到合适的位置。

最后,通过调用insertion_sort(arr)函数并传入一个示例数组arr = [12, 11, 13, 5, 6],对数组进行排序。最后打印排序后的数组,即print("排序后的数组:", arr)

这样,整个算法就完成了对输入数组的排序。插入排序的时间复杂度为O(n^2),是一种简单但有效的排序算法。

  1. 从第二个元素开始,依次将元素插入到已排序区间的合适位置。
  2. 每次插入时,将当前元素与已排序区间中的元素从后往前逐个比较,找到合适的插入位置。
  3. 插入位置后的元素依次向后移动,为新元素腾出位置。
  4. 重复以上步骤,直到所有元素都被插入到已排序区间中。
    def insertion_sort(arr):
        for i in range(1, len(arr)):
            key = arr[i]  # 当前需要插入的元素
            j = i - 1  # 已排序区间的最后一个元素的索引
    
            # 将当前元素插入到已排序区间的合适位置
            while j >= 0 and key < arr[j]:
                arr[j + 1] = arr[j]  # 元素后移
                j -= 1
            arr[j + 1] = key  # 插入到合适位置
    
    # 示例
    arr = [12, 11, 13, 5, 6]
    insertion_sort(arr)
    print("排序后的数组:", arr)
    

    这段代码实现了插入排序算法。让我们逐行解释一下这个算法的实现过程:  1.def insertion_sort(arr): - 定义了一个名为insertion_sort的函数,该函数接受一个数组arr作为输入参数。    2.for i in range(1, len(arr)): - 循环遍历数组arr,从第二个元素开始(索引为1)直到最后一个元素。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值