插入排序python版本

文章展示了Python实现插入排序的两种方式,比较了for循环和while循环在处理条件判断时的差异。for循环在某些情况下可能不够灵活,而while循环提供了更多控制流程的选项。作者建议在Python中考虑使用while循环来增加代码的灵活性。
摘要由CSDN通过智能技术生成

插入排序python版本,python循环使用的思考

# 插入排序
testLst = [1, 1, 1, 2, 5]
def cha(lst):
    n = len(lst)
    for i in range(1, n):
        tmp = lst[i]
        for j in range(i - 1, -1, -1):
            if lst[j] <= tmp:
                break
            else:
                lst[j + 1] = lst[j]
        if j == 0 and lst[j] > tmp: #如果j已经到了0的位置,仍然没有找到比tmp小的元素,由于用的for循环,会自动跳出循环,那么就把tmp放在0这个位置,此时tmp是最小的//此处可以用while循环代替
            lst[j] = tmp
        else:
            lst[j + 1] = tmp  # 一旦发现<=tmp的地方,跳出循环,并把tmp方位当前未知的下一个位置
    return lst

print(cha(testLst))

#用while写内层循环
def cha(lst):
    n = len(lst)
    for i in range(1, n):
        tmp = lst[i]
        j = i -1
        while j >= 0:
            if lst[j] <= tmp:
                break
            else:
                lst[j + 1] = lst[j]
            j -= 1
        lst[j + 1] = tmp  # 一旦发现<=tmp的地方,跳出循环,并把tmp方位当前未知的下一个位置
    return lst

从以上的例子可以看出,python的for循环由于不像C和java那种可以多种条件控制,有时候用for循环会很不方便,且很容易出现错误,所以python语言考虑到灵活性,要多用while循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值