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