zoukankan      html  css  js  c++  java
  • python之排序算法

    快速排序

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    import random,time
    
    def quick_sort(array,left,right):
        '''
        :param array:
        :param left: 列表的第一个索引
        :param right: 列表最后一个元素的索引
        :return:
        '''
        if left >=right:
            return
        low = left
        high = right
        key = array[low] #第一个值
    
        while low < high:#只要左右未遇见
            while low < high and array[high] > key: #找到列表右边比key大的值 为止
                high -= 1
            #此时直接 把key(array[low]) 跟 比它大的array[high]进行交换
            array[low] = array[high]
            array[high] = key
            while low < high and array[low] <= key : #找到key左边比key大的值
                low += 1
                #找到了左边比k大的值 ,把array[high](此时应该刚存成了key) 跟这个比key大的array[low]进行调换
            array[high] = array[low]
            array[low] = key
        quick_sort(array,left,low-1) #最后用同样的方式对分出来的左边的小组进行同上的做法
        quick_sort(array,high+1, right)#用同样的方式对分出来的右边的小组进行同上的做法
    
    
    if __name__ == '__main__':
        array = [96,14,10,9,6,99,16,5,1,3,2,4,1,13,26,18,2,45,34,23,1,7,3,22,19,2]
        #print(array)
        time_start = time.time()
        quick_sort(array,0,len(array)-1)
        time_end = time.time()
        print time_end -time_start
        print array
    
  • 相关阅读:
    BZOJ2243: [SDOI2011]染色
    BZOJ1036: [ZJOI2008]树的统计Count
    转自 x_x_的百度空间 搞ACM的你伤不起
    wcf test client
    wcf test client
    log4net编译后命名空间找不到的问题
    log4net编译后命名空间找不到的问题
    Hive Getting Started
    Hive Getting Started
    刚听完CSDN总裁蒋涛先生的学术报告
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/6767816.html
Copyright © 2011-2022 走看看