标签:imp key list break ret 默认 bre 需要 class
1. 插入排序:
插入排序默认第一个为已经排好顺序的列表,后面的每一个都与之比较并排序,排好之后,所有的自然都已经排好, 第二种优化的算法,如果已经插入, 说明找对了位置,那么下面就break,如果不需要排序, 那么就说明已经是最大的了, 因为前面的已经排好了,排好之后,也不需要再排了,可以break了。
import time
start = lambda : time.time()
list1 = [66,33,1,3,111,3,10,29,7,123,56,23] * 50
def busorted(unsorted):
l = len(unsorted)
for i in range(0,l):
key = unsorted[i]
for x in range(i,0,-1):
if unsorted[x] < unsorted[x-1]:
unsorted[x], unsorted[x-1] = unsorted[x-1], unsorted[x]
return unsorted
def optimizesorted(unsorted):
l = len(unsorted)
for i in range(0,l):
key = unsorted[i]
for x in range(i,0,-1):
if unsorted[x] < unsorted[x-1]:
unsorted[x], unsorted[x-1] = unsorted[x-1], unsorted[x]
else :
break
return unsorted
if __name__ == ‘__main__‘:
print(list1)
t1 = start()
print(busorted(list1))
t2 = start()
print(‘-----------Time is {}‘.format(t2-t1))
标签:imp key list break ret 默认 bre 需要 class
原文地址:http://www.cnblogs.com/python-zen/p/7465344.html