zoukankan      html  css  js  c++  java
  • 用python刷算法--快速排序算法

    快速排序算法流程

    1. 选定一个基准值(任意选,以第一个为例)
    2. 定义左右指针指向左右两端
    3. 左指针往右移动,如果遇到大于基准值的数就把它和右指针的值调换位置,然后左指针不动,右指针开始向左移动,如果遇到小于基准值的数就把他和左指针的值调换位置,然后开始移动左指针,以此类推,知道左右指针相遇
    4. 递归上述过程知道排序结束

    用python实现

    def quickSort(intList: list) -> list:
        # 如果长度小于等于1就结束
        if len(intList) <= 1:
            return intList
    
        # 1. 将第一个值选为基准值
        flag = intList[0]
        # 定义左右指针
        left, right = 0, len(intList) - 1
    
        i = 1
        while i <= right:
            if intList[i] > flag:
                intList[i], intList[right] = intList[right], intList[i]
                right -= 1
            else:
                intList[i], intList[left] = intList[left], intList[i]
                left += 1
                i += 1
    
        # 传列表的切片不会改变本身变量所以需要返回
        leftList = quickSort(intList[:left])
        rightList = quickSort(intList[left+1:])
        return leftList + [flag] + rightList
    
  • 相关阅读:
    MySQL基础
    mysql新
    第四章 常用模块
    第三章 函数编程
    第二章 数据类型和文件操作
    基础语法
    day24 面向对象与实例属性
    day21
    详解 Eclipse 中的快速 Java 编码(代码模板)
    补缴2个月社保折腾1年多 刁钻政策玩死人
  • 原文地址:https://www.cnblogs.com/kainhuck/p/12966161.html
Copyright © 2011-2022 走看看