zoukankan      html  css  js  c++  java
  • python 快速排序

    def quick_sort(alist, start, end):
        if start >= end:
            # 退出递归
            return
        pivot = alist[start]
        right = end
        left = start
     
        # 控制right -= 1不满足条件交换
        while left < right:
            while left < right and alist[right] > pivot:
                right -= 1
            else:
                # 交换
                alist[left] = alist[right]
            # 控制 left += 1 , 不满足条件交换
            while left < right and alist[left] < pivot:
                left += 1
            else:
                alist[right] = alist[left]
     
        # 退出循环 left = right
        # left 或者 right 对应的位置 赋值为基准值
        alist[left] = pivot
     
        # 递归自己调用自己
        quick_sort(alist, start, left-1)  # 对左边排序
        quick_sort(alist, left+1, end)   # 对右边排序
     
     
    if __name__ == '__main__':
        li = [6, 7, 5, 3, 4, 1, 8]
        quick_sort(li, 0, len(li)-1)
        print(li)
  • 相关阅读:
    Tomcat组件
    Tomcat介绍
    Varnish的VCL
    varnish的架构和日志
    Varnish介绍
    HAProxy的配置
    HAProxy介绍
    KeepAlived的实现示例
    KeepAlived的配置
    vue2.0填坑有感(持续更新ing)
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/15520640.html
Copyright © 2011-2022 走看看