插入排序

插入排序

插入排序思路:

  列表被分为有序区和无序区两个部分。最初有序区只有一个元素。

  每次从无序区选择一个元素,插入到有序区的位置,直到无序区变空。

时间复杂度:

  O(n2)

def insert_sort(li):
    """
    插入排序法
    :param li:无序列表
    :return:None
    """
    for i in range(1, len(li)):
        tmp = i
        j = i - 1
        while j >= 0 and li[j] > tmp:
            li[j + 1] = li[i]
            j -= 1
        li[j+1] = tmp


li = list(range(1000))
random.shuffle(li)
insert_sort(li)
print(li)
posted @ 2017-03-08 18:21  yxy_linux  阅读(150)  评论(0编辑  收藏  举报