Python 插入排序

Python 插入排序

# 插入排序
def insertion_sort(array: list) -> list:
    """
    :param array: 待排序列表
    :return:
    # 选取下表为1的元素开始比较 比较position_index之前的元素 如果小于之前的元素则之前的元素右移一位
        继续往前判断 如果大于则开始下一轮比较,用零时变量temp_value来保存该值 如果内循环完后 position_index不等于 外循环的index
        则重新赋值position_index的值为零时变量temp_value
    """
    compare_count = len(array)  # 需要循环的次数 为n-1次
    for index in range(1, compare_count):
        position_index = index  # 从下标为1的元素开始判断
        temp_value = array[position_index]  # 保存一个零时变量用来插入
        while position_index > 0 and temp_value < array[position_index - 1]:  # 如果没有列表左侧没有判断完 并且零时变量小于左侧的值
            array[position_index] = array[position_index - 1]  # 左侧的值右移一位
            position_index -= 1  # 继续向左判断
        if position_index != index:  # 如果position_index不等于外循环的index 说明左移过将零时变量插入到被移走元素的位置上
            array[position_index] = temp_value
    return array
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值