练习三十九:数组插入排序

数组序列的排序有内置方法,insert(),但是要对已经排序好的数组进行插入排序时,让插入的数据满足原有排序怎么操作,先看习题
已知有一个已经排序好的数组,要求是,将一个新的数据项插入到数组中
思考过程;
先判断原数组的排序方法,然后按照排序方法,将新数据与数据中最后一个数据进行比较,然后找到插入位置后,将数据依次向后移动一个位置

  1 # a = [1,3,4,6,8,12,13]
  2 a = [8,5,4,1]
  3 
  4 flag = 1
  5 for i in range(len(a)):
  6     for j in range(i,len(a)):
  7         if a[i]>a[j]:
  8             flag = 1
  9         elif  a[i]<a[j]:
 10             flag = 0
 11 print(a)
 12 nnum = int(input('输入要插入的数据:'))
 13 if flag == 0:
 14     if a[0] >= nnum:
 15         a.insert(0,nnum)
 16     elif nnum > a[0] and nnum < a[-1]:
 17         for i in range(len(a)):
 18             if a[i] < nnum and a[i+1] >= nnum:
 19                 a.insert(i+1,nnum)
 20                 break
 21     else:
 22         a.append(nnum)
 23 if flag == 1:
 24     if a[-1] >= nnum:
 25         a.append(nnum)
 26     elif nnum < a[0] and nnum > a[-1]:
 27         for i in range(len(a)):
 28             if a[i] > nnum and a[i+1] <= nnum:
 29                 a.insert(i+1,nnum)
 30                 break
 31     else:
 32         a.insert(0,nnum)
 33 print(a)
执行结果:
  1 [8, 5, 4, 1]
  2 输入要插入的数据:0
  3 [8, 5, 4, 1, 0]

转载于:https://www.cnblogs.com/pinpin/p/10126090.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值