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

数组序列的排序有内置方法,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