zoukankan      html  css  js  c++  java
  • python基础练习题(题目 有序列表插入元素)

    day26

    ---------------------------------------------------------------

    实例039:有序列表插入元素

    题目 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    分析:原来的排序规律不知道,所以先判断原来的数组规律,再循环比对

     1 def insert_arry(list, a):
     2     if list[0]<=list[-1]:
     3         for i in range(len(list)):
     4             if list[i] <= a:
     5                 continue
     6             else:
     7                 list.insert(i,a)
     8                 break
     9     else:
    10         for i in range(len(list)):
    11             if list[i] >= a:
    12                 continue
    13             else:
    14                 list.insert(i, a)
    15                 break
    16     return list
    17 lis1 = [1,2,3,4,5,6,7,8,9]
    18 lis2 = [9,8,7,6,5,4,3,2,1]
    19 list = insert_arry(lis1, 7)
    20 print(list)

    总感觉我的代码很冗余,但是又想不出怎么优化。。。

    看看答案:

    1 lis=[1,10,100,1000,10000,100000]
    2 n=int(input('insert a number: '))
    3 lis.append(n)
    4 for i in range(len(lis)-1):
    5     if lis[i]>=n:
    6         for j in range(i,len(lis)):
    7             lis[j],lis[-1]=lis[-1],lis[j]
    8         break
    9 print(lis)

    答案是考虑递增的情况,首先判断此数是否大于最后一个数,如果大于就切换对应的位置,最后最大的数一定在末尾,即排序完毕。

  • 相关阅读:
    Unity调试模式设置辅助线是否可见
    Gizmos绘制塔防游戏网格
    JS offsetparent 问题
    JS 图像延迟加载
    JS image对象
    JS 瀑布流
    JS 对象
    JS node
    Vue+element 实现表格的增加行、根据索引删除行的功能
    Java的集合框架
  • 原文地址:https://www.cnblogs.com/qgc1995/p/15388182.html
Copyright © 2011-2022 走看看