算法导论 2.1 插入排序 insertion-sort

年近三十,身在国企,重拾梦想。

一、算法思路
算法需要2重循环,首先第1重循环从左向右逐渐+1生成子数组,然后第2重循环进行子数组排序。时间复杂度自然是O(n^2)。
如图a [5,2] 排序,变成图b [2,5,4]排序,变成图c [2,4,5,6]排序
在这里插入图片描述
二、Python代码

arr=[5,2,4,6,1,3]

for j in range(1,len(arr)):
    key=arr[j]
    i=j-1
    while i>=0:
        if arr[i]>key:#此为升序排序,若要降序排序则改为<
            arr[i+1]=arr[i]
            i=i-1
        else:
            break
        
    arr[i+1]=key

print(arr)    

三、运行结果

E:\python\suanfadaolun>python 2.1-insertion-sort.py
[1, 2, 3, 4, 5, 6]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值