快排序算法(中)

简介: 快排序算法(中)

每来一个位置都有三种情况

1)第一种情况

i当前所在的数[i]<num,当前数和小于区域下一个做交换,<区域右扩,i跳下一个

2)第二种情况

[i]=num,i直接跳下一个

3)第三种情况

[i]>num

当前数i大于num

[i]当前数i和大于区域的前一个做交换

大于区域左扩

i原地不变

如图分析

i 位置上3 ,3<5 命中第一条逻辑


image.png

然后中了情况3,6大于5

i和大于区域的前一个做交换

6和0交换

大于区域向左扩

i原地不动


image.png

因为这个0是交换过来的 还没有看过它 所以原地不动

0是小于num的 中了逻辑1

所以和小于区域的下一个数做交换

0和5交换

小于区域向右扩一个位置

i跳下一个


image.png

image.png

image.png

6>5 名中第三个逻辑

和大于区域的前一个做交换

6和9换

大于区域往左扩一个位置

i原地不动

image.png

9>5

名中第三个逻辑

和大于区域的前一个做交换

9和9自己换

大于区域往左扩一个位置

i原地不动


image.png

当大于区域和i撞上的时候 交换停止

此时已经做到了 左边都是小于5的,中间都是等于5的,右边都是大于5的


image.png

i根据自己现在来到的数

如果是等于num的 就在等于区域直接扩充

然后跳下一个

image.png

相当于小于区域推着等于区域往前走

如果i是大于区域的

image.png

和大于区域的下一个交换并左扩

要么i往右走压缩待定区域

让小于区域推着等于区域奔向大于区域

要么i位置直接发货到大于区域

让大于区域往左扩 压缩待定位置

当小于区域推着等于区域和大于区域撞上的时候 就结束了

快排1.0版本

image.png

在整个数组中 拿最后一个数做划分值

最后一个数认为是num

让最后一个位置前面的这一段 小于等于num的放到左边

大于num的放在右边

image.png

这个数和大于区域的第一个数做交换

就可以做到小于等于区域被扩充了 而且最后一个数一定是num

然后剩下的都是大于区域的

让num的左侧和右侧重复这个行为

比如

image.png

相关文章
|
Java 应用服务中间件 Go
《Spring Boot框架原理》
《Spring Boot框架原理》
218 1
|
存储 监控 Java
分布式链路监控系统问题之使用Byte Buddy进行字节码增强时的问题如何解决
分布式链路监控系统问题之使用Byte Buddy进行字节码增强时的问题如何解决
158 0
|
6月前
|
存储 关系型数据库 MySQL
【赵渝强老师】TiDB的体系架构
TiDB是由PingCAP公司自主研发的开源分布式关系型数据库,支持HTAP(混合事务分析处理),具备弹性扩缩容、金融级高可用、实时分析等特性,兼容MySQL协议。其架构分为存储集群(行存TiKV与列存TiFlash)、调度集群(PD实例)和计算集群(TiDB实例)。相比传统单机数据库,TiDB优势显著:纯分布式设计、高扩展性、自动故障恢复、ACID事务支持及丰富的工具生态,适用于高可用与强一致要求的场景。
208 10
|
9月前
|
存储 缓存 安全
分布式系统架构7:本地缓存
这是小卷关于分布式系统架构学习的第10篇文章,主要介绍本地缓存的基础理论。文章分析了引入缓存的利弊,解释了缓存对CPU和I/O压力的缓解作用,并讨论了缓存的吞吐量、命中率、淘汰策略等属性。同时,对比了几种常见的本地缓存工具(如ConcurrentHashMap、Ehcache、Guava Cache和Caffeine),详细介绍了它们的访问控制、淘汰策略及扩展功能。
208 6
|
12月前
|
数据采集 人工智能 运维
《文档智能 & RAG让AI大模型更懂业务》解决方案体验评测
【10月更文挑战第11天】随着人工智能技术的不断进步,AI在各个领域的应用也愈发广泛。近期,我有幸接触并部署了《文档智能 & RAG让AI大模型更懂业务》这一创新性解决方案。该方案旨在通过结合文档智能处理和检索增强生成(Retrieval-Augmented Generation, RAG)技术来提升AI大模型对特定业务知识的理解能力。接下来,我将从多个角度分享我的体验与思考。
226 2
|
存储 JavaScript 前端开发
表格存储中,你可以使用任意类型的值作为单元格的值
表格存储中,你可以使用任意类型的值作为单元格的值
124 1
|
消息中间件 NoSQL 关系型数据库
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
362 0
|
机器学习/深度学习 分布式计算 大数据
MaxCompute 2.0:开源系统的集成与创新
增强实时处理能力:进一步加强与Flink等实时处理框架的合作。 强化机器学习支持:提供更多内置的机器学习算法和工具。 增强数据治理功能:提供更完善的数据质量和安全治理方案。
|
Linux API 网络架构
Rest API请求管理最佳实践:RestClient-cpp库的应用案例
Rest API请求管理最佳实践:RestClient-cpp库的应用案例
|
Java Linux 应用服务中间件
阿里云9.9元学生服务器如何购买和配置方法
一.通过学生价购买云服务器 步骤一:个人认证与实名认证 1.进入阿里云官网2.点击右上角登录按钮(这里使用的是淘宝账号密码支付,这个大家应该都有吧,没有自己去注册个淘宝账号) 3.输入淘宝账号密码后点击激活 4.
21909 0