小白日更第二十七天->八大排序之快速排序

news/2024/5/19 21:29:02 标签: 排序算法, 快速排序, java

有了前面的基础,暗示着没有看我的冒泡排序、选择排序、插入排序、希尔排序的小伙伴快去花几分钟的时间把前面比较基础的排序算法先搞清楚,再来看这篇快速排序算法吧~
在这里插入图片描述
然后你就看我操作就完事!

大概流程

  1. 还是拿第一个元素当作参照物
  2. 定义一个哨兵i哨兵j
  3. 哨兵j从数组最后面的一个元素开始进行比较,哨兵i从数组的第二个元素进行比较
  4. 哨兵j先移动,遇到第一个比参照物小的元素停下来
  5. 哨兵i遇到第一个比参照物大的元素停下来
  6. 交换i和j对应数组下标的两个数据
  7. 当i和j相遇的时候把此时的数组元素和第一个也就是我们刚开始设置的参照物进行交换
  8. 递归调用,因为把参照物换到两个哨兵相遇的数组位置以后,左边的都比参照物小,右边的都比参照物小
  9. 两边的数组继续递归调用这个函数就可以了

图片演示
在这里插入图片描述
代码演示:
在这里插入图片描述

测试数据:
在这里插入图片描述
结果:
在这里插入图片描述
以上就是快速排序的过程,有什么错误的地方或者有哪里可以改进的,小伙伴们在评论区留言~在这里插入图片描述


http://www.niftyadmin.cn/n/1276749.html

相关文章

tomcat jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.

造成这种情况的原因很可能是以下两种情况: 一、项目的WEB-INF/lib下有servlet-api.jar,与Tomcat自带的servlet-api.jar冲突了。 二、项目的WEB-INF/lib下有包含javax.servlet包的其他JAR包(如WebLogic 8.1的weblogic.jar)&#xf…

小白日更第二十八天->八大排序之归并排序

没看过我的冒泡排序、选择排序、插入排序、希尔排序、快速排序的小伙伴,可以花几分钟时间把前面这些排序算法先看一下(大神请跳过) 开始今天的学习吧~ 归并排序的大致流程: 先把一个数组一分为二两个数组再分别一分为二直到分组…

MySQL 高级(进阶) SQL 语句 (一)

目录 环境:创建表一、order by语句二、升序与降序(ASC和DESC)三、select查询四、and/or-且/或五、where六、distinct(查询不重复记录)七、group by(对结果进行分组)八、limit九、alias&#xf…

keyStore和trustStore

1.trustStore中保存的是一些可信任的证书,主要是java在代码中访问某个https的时候对被访问者进行认证的,以确保其实可信任的。trustStore可以看成一个放信任证书的一个store,存放的只包含公钥的数字证书,代表了可以信任的证书。 …

MySQL (2)

文章目录 MySQL (2)前言:数据表操作 描述数据表信息 MySQL 中的数据类型 数值类型字符串类型日期类型 关于数据表的操作 1.创建数据表2.查看表3.查看表结构4.删除表 SQL 练习 1.创建商品 goods2.创建客户customer3.创建购买purchase MySQL…

小白日更第二十九天->DNS域名解析

老规矩先看百度百科~ 1、域名系统 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多…

axis2.xml

axis2.xml位于AXIS2_HOME/conf目录下面,在此文件中可以看到位于根元素下面有六个顶层元素: ParameterTransport ReceiverTransport SenderModule ReferenceListener(Observers)Message ReceiverMessage FormattersMessage BuilderParameter 在Axis2中&a…

数据库常用术语

关系型数据库服务(Relational Database Service,简称RDS)是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使您能专注于应…