python实现希尔排序(选择排序的进一步优化)

本文介绍了一种改进的插入排序算法,通过逐步缩小增量实现了Shell排序。它利用了插入排序的思想,并通过调整步长来提高效率,适用于部分有序的数据。作者详细解释了如何通过gap值的递减和循环结构来优化排序过程。

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

def insert_sort(li, gap):
    li_len = len(li)
    for i in range(gap, li_len):  # 无序区[i,li_len)

        j = i - gap  # 有序区的索引
        tmp = li[i]

        while j >= 0 and tmp < li[j]:  # 只要当前抽到的元素小于有序区中的元素,有效区中的元素就后移gap位
            li[j + gap] = li[j]
            j -= gap
        else:
            li[j + gap] = tmp


@clocked
def shell_sort(li):  # 插入排序的进一步优化
    d = len(li) // 2
    while d >= 1:
        insert_sort(li, d)
        d //= 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值