
快速排序
发布日期:2021-05-08 20:26:18
浏览次数:13
分类:精选文章
本文共 1423 字,大约阅读时间需要 4 分钟。
快速排序–java
package algorithm;import java.util.Arrays;public class QuickSort { public static void main(String[] args) { //定义数组 int[] arr = {6, 3, 7, 9, 5, 1, 4, 8}; //调用方法,进行快速排序 quickSort(arr, 0, arr.length - 1);// System.out.println(Arrays.toString(arr)); for (int i = 0; i < arr.length; i++){ System.out.println(arr[i] + " "); } } public static void quickSort(int[] arr, int left, int right){ if(left > right){ return; } //定义变量保存的基准数 int base = arr[left]; //定义变量i,指向最左边 int i = left; //定义变量j,指向最右边 int j = right; //当i和j不相遇的时候,在循环中进行检索 while (i != j){ //先由j从右往左检索比基准数小的,如果检索到比基准数小的就停下 while (arr[j] >= base && i < j){ j--; } //先由i从左往右检索比基准数大的,如果检索到比基准数大的就停下 while (arr[i] <= base && i < j){ i++; } //代码走到这里,i停下了,j也停下了。然后交换i和j位置的元素 int temp = arr[i]; arr[i] = arr[j]; arr[j] = arr[i]; } //如果上面while循环的条件不成立,会跳出这个循环,往下执行 //如果这个条件不成立说明 //如果i和j相遇,就交换基准数这个元素和相遇位置的元素。 //把相遇位置的元素赋值给基准数这个位置的元素 arr[left] = arr[i]; //再把基准数赋值给相遇位置的元素 arr[i] = base; //基准数在这里就归位了,左边的数字都比他小,右边都比他大 //排基准数的左边 quickSort(arr,left,i-1); //排右边 quickSort(arr,j+1,right); }}
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月03日 15时58分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
asp.net打印网页后自动关闭网页【无需插件】
2019-03-06
一个人开发的html整站源码分享网站就这么上线了
2019-03-06
SQLServer 查看耗时较多的SQL语句(转)
2019-03-06
【计算机网络】应用层
2019-03-06
【Maven】POM基本概念
2019-03-06
【Java思考】Java 中的实参与形参之间的传递到底是值传递还是引用传递呢?
2019-03-06
【设计模式】单例模式
2019-03-06
【SpringCloud】Hystrix熔断器
2019-03-06
【Linux】2.3 Linux目录结构
2019-03-06
java.util.Optional学习笔记
2019-03-06
远程触发Jenkins的Pipeline任务的并发问题处理
2019-03-06
jackson学习之七:常用Field注解
2019-03-06
jackson学习之八:常用方法注解
2019-03-06
Web应用程序并发问题处理的一点小经验
2019-03-06
entity framework core在独立类库下执行迁移操作
2019-03-06
Asp.Net Core 2.1+的视图缓存(响应缓存)
2019-03-06
服务器开发- Asp.Net Core中的websocket,并封装一个简单的中间件
2019-03-06
没花一分钱的我竟然收到的JetBrains IDEA官方免费赠送一年的Licence
2019-03-06
Redis 集合统计(HyperLogLog)
2019-03-06
RE套路 - 关于pyinstaller打包文件的复原
2019-03-06