首页 > 编程语言 > 详细

python算法练习

时间:2017-09-01 23:34:35      阅读:249      评论:0      收藏:0      [点我收藏+]

 

 

 

 

 

 

 

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算法练习

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!