题目:有一个已经排好序的数组。现输入一个数,要求按原来的从小到大顺序将它插入数组中。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

程序源代码:

实例(Python 2.0+)


#!/usr/bin/python

# -*- coding: UTF-8 -*-

if __name__ == '__main__':

   # 0 作为加入数字的占位符放到最后

   a = [1,4,6,9,13,16,19,28,40,100,0]

   print '原始列表:'

   for i in range(len(a)):

       print a[i],

   number = int(raw_input("\n插入一个数字:\n"))

   end = a[9]

   if number > end:

       a[10] = number #最大的话就放在最后一位

   else:

       for i in range(10):

           if a[i] > number:

               temp1 = a[i]

               a[i] = number

               for j in range(i + 1,11):

                   temp2 = a[j]

                   a[j] = temp1

                   temp1 = temp2

               break

   print '排序后列表:'

   for i in range(11):

       print a[i],

以上实例输出结果为:

原始列表:

1 3 6 8 13 16 21 28 41 70 0

插入一个数字:

7

排序后列表:

1 3 6 7 8 13 16 21 28 41 70