首页 > 其他分享 >快速排序

快速排序

时间:2023-01-28 16:55:44浏览次数:36  
标签:__ li high low 排序 快速 left

  快速排序,在等待排序的n个值中选取一个值做为中间值,将大于中间值的放右边,小于中间值的放左边,然后再分别对左右子表进行上面重复操作,直到子表只有一个值为止。

  

 

  代码实现

  

# -*- coding = utf-8 -*-
# @Author: Wchime
# @time: 2023/1/27 17:04
# @file: 快速排序.py


def sort_quick(li,left,right):
    """快速排序"""
    if left >= right:
        return
    mid_value = li[left]
    low = left
    high = right
    while low < high:
        while low < high and li[high] >= mid_value:
                high -= 1
        li[low] = li[high]

        while low < high and li[low] < mid_value:
            low += 1
        li[high] = li[low]
    li[low] = mid_value
    sort_quick(li, left, low-1)
    sort_quick(li, low+1, right)


if __name__ == "__main__":

    l = [1, 9, 4, 8, 2, 3, 7]
    sort_quick(l, 0, len(l)-1)
    print(l)

 

标签:__,li,high,low,排序,快速,left
From: https://www.cnblogs.com/moon3496694/p/17070843.html

相关文章

  • 快速切换tab时数据错乱
    场景:列表页,可以切换tab展示获取对应类型的数据,懒加载,每次请求后拼接到已有列表后面问题:快速切换,当前列表下会拼接上一个tab请求返回的数据解决:使用axios的cancelT......
  • 怎么快速删除同一CAD图层中的文字?CAD图层文字删除步骤
    在CAD设计过程中,有些时候会在CAD图纸中添加许多注释,如果想要将某一CAD图层中的文字全部或者框选部分删除,如何快速操作呢?下面就和小编一起来了解一下浩辰CAD软件中通过调用......
  • MyBatis-Plus中使用order by排序处理null值字段的排序
    目录前提准备数据示例MyBatis-Plus中使用LambdaQueryWrapper处理空值排序前提SQLORDERBY子句用于根据一个或者多个字段对查询结果(结果集)进行排序,可以是降序,也可以是升......
  • Docker快速部署Nacos
    前置机器配置不能太低(2c2g的轻量服务器直接崩掉了)Dockerhttps://www.docker.com/开始安装mysql使用docker安装mysql(推荐8.0)可以不输入这个直接跳到下......
  • Padavan最新修复安装ONMP,自建本地entware源快速安装WEB环境,帖内付补充文件
    onmp一键安装WEB环境脚本,因为官方源文件变动的问题,导致onmp即使成功安装后很多WEB应用也用不了,缺失了常用的PHP扩展,作者自己也放弃更新了,很可惜.经过几个星期的摸索烧......
  • docker compose 快速编排
    一、Docker-compose1、简介(1)Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容集群的快速编排(2)Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(s......
  • openstacksdk快速上手
    hello,大家好,这里是费冰,今天是大年初六,唉,这么早就被迫营业了。那么今天来解读一波openstacksdk。Openstacksdk是什么其实我很难说明一个是什么的问题。如果你使用过pytho......
  • 10 排序 | 数据结构与算法
    1.排序概述1.排序的概念排序:将一组杂乱无章的数据排列成一个按关键字有序的序列数据表:待排序数据对象的有限集合关键字:通常数据对象有多个属性域,即多个数据成员组成......
  • 冒泡排序
    冒泡排序是通过比较相邻两个值,如果发生逆序则进行交换,从而使小的值一直往上冒,或者大的值一直往下沉。代码实现#-*-coding=utf-8-*-#@Author:......
  • 08 冒泡排序
    冒泡排序代码packagecom.zhan.base04Array;publicclassTest08{publicstaticvoidmain(String[]args){int[]a={1,5,3,8,6};sort(a);......