插入排序——希尔插入排序

本文借鉴于lsgo实验室创始人马老师

希尔插入排序

算法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序:

def ShellInsertSort(nums):
    """希尔插入排序"""
    delta = len(nums) //2
    while delta >0:
        shell(delta,nums)
        delta = delta//2
    return nums

def shell(delta, key):
    for i in range(delta,len(key)):
        j = i - delta
        current = key[i]
        while j >= 0 and key[j] >current:
            key[j+delta] = key[j]
            j = j - delta
        key[j+delta] = current

直接插入排序

在这里插入图片描述

程序

def StraightInsertSort(nums):
    """直接插入排序"""
    for i in range(1,len(nums)):
        j = i -1
        current = nums[j]
        while j >= 0 and nums[j] > current:
            nums[j+1] = nums[j]
            j = j -1
        nums[j+1] = current
    return nums

稳定排序
如果碰见一个元素和插入元素相等,那么算法将程序放在相等元素的后面;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值