排序算法之快速排序
发布日期:2021-11-02 12:35:11
浏览次数:3
分类:技术文章
本文共 948 字,大约阅读时间需要 3 分钟。
文章目录
排序算法之快速排序
排序过程:
1.首先找出标准数 standard,同常取数组中第一个数字为标准数
2.取两个移动坐标,一个叫低位坐标low 在最左边,另一个叫高位坐标high在最右边。
首先从高位上的数字开始:
循环(低位坐标在高位坐标左边&&右边的数字大于标准数字){
将高位移动坐标向前移动
}
//出现高位上的数字小于标准数字时,将高位上的数字赋值给左边低位上的数字
array[low]array[high];
2.2
循环(低位坐标小于高位坐标&&低位上的数字小于标准数字){
则低位坐标向后移动
}
//当出现低位上的数字大于标准数字,则将低位上的数字赋值给高位上
array[low]=array[high];
//此时会出现低位移动坐标与高位坐标重合,此时将标准数字赋值给这里
array[high]=standard;
3.经过第二步骤之后,会出现小于标准数的在标准数左边,大于标准数的在标准数右边,
再次分别采用递归的方法,处理左右两边的数字。
quickSort(arr,start,low);
quickSort(arr,low+1,end);
4.最后就排好序了。
代码实现
import java.util.Arrays;public class QuickSort{ public static void main(String[] args){ int[] array=new int[]{ 3,2,5,9,2,5,7,23}; quickSort(array,0,array.length-1); System.out.println(Arrays.toString(array)); } public static void quickSort(int[] arr,int start,int end){ //当起始位置小于最后位置时,才循环。--这只是一个防止后面无限循环的方法。 if(start
代码结果:
1。没采用递归时。(标准数时3,小于3的都在左边,大于3的都在右边)
2.采用递归处理 标准数前后的 数字
转载地址:https://blog.csdn.net/weixin_43919632/article/details/90668803 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月07日 16时06分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python - 使用sql 分析(06 - 15)国内各省GDP
2019-04-27
python - 抓取汇率数据分析美元和欧元对RMB的变化曲线
2019-04-27
python 数据科学 - 【回归分析】 ☞ 线性回归(2)
2019-04-27
设计模式——工厂模式
2019-04-27
Unity中实现有限状态机FSM
2019-04-27
Unity中实现反弹
2019-04-27
U3D游戏开发框架(九)——事件序列
2019-04-27
Unity中解决“SetDestination“ can only be called on an active agent that has been placed on a NavMesh
2019-04-27
Unity中的刚体
2019-04-27
Unity中的坐标转换
2019-04-27
Unity中为什么不能对transform.position.x直接赋值?
2019-04-27
使用对象池优化性能
2019-04-27
Lua(一)——Lua介绍
2019-04-27
Lua(二)——环境安装
2019-04-27
Unity中父子物体的坑
2019-04-27
基础知识——进位制
2019-04-27
Lua(十二)——表
2019-04-27
Lua(十三)——模块与包
2019-04-27
Lua(四)——变量
2019-04-27
Lua(十四)——元表
2019-04-27