八大排序之直接插入排序

2018-01-14  本文已影响0人  beckerhanqq

处理方法

  1. 初始状态:有一个n个元素的数组待排序,迭代指针初始为第二个元素 (下标为1),设该元素为key,key左侧的元素在初始时是有序的,很好理解,因为初始时,key左侧只有一个元素,一个元素是有序的。

  2. 迭代状态:将key插入左侧有序的数组,然后迭代指针右移一位。

  3. 终止状态:迭代指针到了整个数组的最后一位,并将最后一位插入到了左侧对应的位置,排序完成。

细节处理

c = []
for i in range(5):
    item = int(raw_input("请输入数值:"))
    c.append(item)

length = len(c)
for i in range(1, length):
    j = i - 1
    key = c[i]
    while j >= 0:
        if key < c[j]:
            c[j], c[j + 1] = c[j + 1], c[j]
        j -= 1

print c

外层循环,是由前向后迭代1-len(c),内层循环是由后向前迭代0-j,如果key小于c[j],就交换c[j]和c[j+1],j-=1

ps

上一篇 下一篇

猜你喜欢

热点阅读