Python实现插入排序的不同方法

本文深入探讨Python中插入排序的原理与不同实现方式,包括简单插入排序和二分插入排序。通过实例代码详细解析每种方法的步骤,帮助读者理解插入排序在数据结构和排序算法中的应用。
摘要由CSDN通过智能技术生成

"""
插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
"""

#第一次尝试
def insert_sort1(my_list):
    for i in range(1,len(my_list)):
        insert_element = i
        for j in range(i,0,-1):
            if my_list[j-1] > my_list[insert_element]:
                my_list[j-1],my_list[insert_element] = my_list[insert_element],my_list[j-1]
                insert_element -= 1

#第二次尝试
def insert_sort2(my_list):
    """
    :param my_list:
    :return:

    需要交换时,插入元素位置减1,for循环自动减1(满足要求),如果比较时出现不需要交换情况,说明之后已经不需要再进行比较了(前面的一定更小)
    此时直接break退出内层循环(也就是最优时间复杂度优化)
    反向for循环只能取到1,不能取到0,要想取到0就需要循环变量做减1操作,所以循环范围均需要加1

    """
    for i in range(1,len(my_list)):
        for j in range(i,0,-1):
            if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值