开发者社区> 问答> 正文

Python 快速排序

Python 快速排序

展开
收起
游客ejnn55cgkof5g 2020-02-14 19:23:40 4520 0
1 条回答
写回答
取消 提交回答
  • def partition(arr,low,high): 
        i = ( low-1 )         # 最小元素索引
        pivot = arr[high]     
      
        for j in range(low , high): 
      
            # 当前元素小于或等于 pivot 
            if   arr[j] <= pivot: 
              
                i = i+1 
                arr[i],arr[j] = arr[j],arr[i] 
      
        arr[i+1],arr[high] = arr[high],arr[i+1] 
        return ( i+1 ) 
      
     
    # arr[] --> 排序数组
    # low  --> 起始索引
    # high  --> 结束索引
      
    # 快速排序函数
    def quickSort(arr,low,high): 
        if low < high: 
      
            pi = partition(arr,low,high) 
      
            quickSort(arr, low, pi-1) 
            quickSort(arr, pi+1, high) 
      
    arr = [10, 7, 8, 9, 1, 5] 
    n = len(arr) 
    quickSort(arr,0,n-1) 
    print ("排序后的数组:") 
    for i in range(n): 
        print ("%d" %arr[i]),
    执行以上代码输出结果为:
    
    排序后的数组:
    1
    5
    7
    8
    9
    10
    
    2020-02-14 19:24:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python系列直播第一讲——Python中的一切皆对象 立即下载
From Python Scikit-Learn to Sc 立即下载
Python 脚本速查手册 立即下载