zoukankan      html  css  js  c++  java
  • 练习三十九:数组插入排序

    数组序列的排序有内置方法,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]
  • 相关阅读:
    浅谈线段树
    浅谈KMP
    20200729线上模拟题解
    20200727线上模拟题解
    声明
    tarjan--割点,缩点
    20201029模拟
    高精模板
    二分图--二分图的几种模型
    树的直径与树的重心
  • 原文地址:https://www.cnblogs.com/pinpin/p/10126090.html
Copyright © 2011-2022 走看看