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

python算法练习

时间:2017-09-02 00:14:13      阅读:164      评论:0      收藏:0      [点我收藏+]

标签: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))

  

python算法练习

标签:imp   key   list   break   ret   默认   bre   需要   class   

原文地址:http://www.cnblogs.com/python-zen/p/7465344.html

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