首页 > 编程语言 > 详细

python排序(选择, 插入)

时间:2016-03-20 11:51:14      阅读:193      评论:0      收藏:0      [点我收藏+]

1.选择排序

算法:

对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换;
然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换。
如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1、Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成

动态视频:http://v.youku.com/v_show/id_XMjU4NTY5NTcy.html?from=y1.2-1-95.3.6-2.1-1-1-5-0

 

def selectSort(array):
    for i in range(0, len(array)):
        min = i
        for j in range(i+1, len(array)):
            if array[j] < array[min]:
                min = j
            array[i], array[min] = array[min], array[i]   


def getRandomList():
    array = []
    for i in range(1, 10000):
        array.append(i)
    random.shuffle(array)

    return array

if __name__ == __main__:
    array = getRandomList()
    t1 = datetime.datetime.now()
    # bubble_sort(array)
    #quickSort(array, 0, len(array)-1)
    selectSort(array)
    t2 = datetime.datetime.now()
    print t2 - t1
########
0:00:15.805000
[Finished in 16.0s]

2 插入排序

def insertSort(array):
    for i in range(0, len(array)):
        min = i
        for j in range(i+1, len(array)):
            if array[min] > array[j]:
                min = j
        array[min], array[i] = array[i], array[min]        

def getRandomList():
    array = []
    for i in range(1, 10000):
        array.append(i)
    random.shuffle(array)

    return array

if __name__ == __main__:
    array = getRandomList()
    t1 = datetime.datetime.now()
    # bubble_sort(array)
    #quickSort(array, 0, len(array)-1)
    # selectSort(array)
    insertSort(array)
    t2 = datetime.datetime.now()
    print array
    print t2 - t1

########
0:00:05.125000
[Finished in 5.6s]

 

python排序(选择, 插入)

原文:http://www.cnblogs.com/gcm688/p/5297174.html

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