码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序

时间:2018-04-05 20:07:28      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:排序算法   for   sort   class   blog   body   有序   时间复杂度   post   

插入排序算法有种递归的思想在里面,它由N-1趟排序组成。初始时,只考虑数组下标0处的元素,只有一个元素,显然是有序的。

然后第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序;

第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序;

.....

.....

第N-1趟对下标 N-1 处的元素进行排序,保证数组[0,N-1]上的元素有序,也就是整个数组有序了。

它的递归思想就体现在:当对位置 i 处的元素进行排序时,[0,i-1]上的元素一定是已经有序的了。

时间复杂度为O(n**2)

def insertSort(test):
    length = len(test)
    for i in range(1,length):
        m = test[i]
        for j in range(0,i):
            if test[j]>m:
                test[i],test[j] = test[j],test[i]
            else:
                continue
    return test    

test = [10,9,7,8,3,6,11]
insertSort(test)
>>>[3, 6, 7, 8, 9, 10, 11]

  

插入排序

标签:排序算法   for   sort   class   blog   body   有序   时间复杂度   post   

原文地址:https://www.cnblogs.com/zenan/p/8723967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!