• python排序(选择, 插入)


    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 插入排序

    http://v.youku.com/v_show/id_XMzMyODk3NjI4.html?from=s1.8-1-1.2

    def insertSort(array):
        if len(array)< 2:
            return array
        for i in range(0, len(array)):
            key = array[i]
            j = i-1
            while j >= 0 and array[j] > key:
                array[j+1] = array[j]
                j-=1
            array[j+1] = key
    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]
  • 相关阅读:
    函数指针Demo
    设计模式笔记
    Simple Factory 模式
    百度API操作实例
    如何发邮件不被认定为垃圾邮件的技巧
    DateTimePicker中自定义时间或日期显示格式
    取得指定月份的天数
    DataGridView中的内容太长时换行显示
    Numericupdown控件value值的非空判断
    C#中用SQL语句CreatTable
  • 原文地址:https://www.cnblogs.com/gcm688/p/5297174.html
Copyright © 2020-2023  润新知