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

Posted pinpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习三十九:数组插入排序相关的知识,希望对你有一定的参考价值。

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



以上是关于练习三十九:数组插入排序的主要内容,如果未能解决你的问题,请参考以下文章

实例三十九 序列插入排序 python编程天天练

Python机器学习(三十九)基于数值区间创建数组

《C#零基础入门之百识百例》(二十四)数组排序 -- 插入排序

打怪升级之小白的大数据之旅(三十九)<Linux常用命令>

算法练习--直接插入排序希尔排序

leetcode刷题三十九