网站首页 > 精选教程 正文
class Solution {
public int[] quicklysort(int[] nums) {
quickSort(nums, 0, nums.length-1);
return nums;
}
public static void quickSort(int[] list, int low, int high){
if(low < high){
int middle = getMiddle(list, low, high);
quickSort(list, low, middle-1);
quickSort(list, middle+1, high);
}
}
public static int getMiddle(int[] list, int low, int high){
int temp = list[low];
while(low < high){
while(low < high && list[high] >= temp){ high--; }
list[low] = list[high];
while(low < high && list[low] <= temp){ low++; }
list[high] = list[low];
}
list[low] = temp;return low;
}
}
①先从队尾开始向前扫描且当low < high时,如果a[high] > tmp,则high–,但如果a[high] < tmp,则将high的值赋值给low,即arr[low] = a[high],同时要转换数组扫描的方式,即需要从队首开始向队尾进行扫描了
②同理,当从队首开始向队尾进行扫描时,如果a[low] < tmp,则low++,但如果a[low] > tmp了,则就需要将low位置的值赋值给high位置,即arr[low] = arr[high],同时将数组扫描方式换为由队尾向队首进行扫描.
③不断重复①和②,知道low>=high时(其实是low=high),low或high的位置就是该基准数据在数组中的正确索引位置.
https://blog.csdn.net/nrsc272420199/article/details/82587933
猜你喜欢
- 2024-12-02 javaCPU飙升怎么解决
- 2024-12-02 【技术管理】如何给任务排优先级?
- 2024-12-02 Java 应用程序的 CPU 使用率飙升原因分析
- 2024-12-02 八种经典排序算法总结(含动画演示)
- 2024-12-02 计算机入门必备算法——快速排序法
- 2024-12-02 Java 实现汇总排序
- 2024-12-02 经典算法之冒泡排序
- 2024-12-02 拜托,别再问我什么是堆了! 这篇文章让你彻底明白!
- 2024-12-02 推荐一款免费排课软件
- 2024-12-02 腾讯工作7年被裁,3个月逆袭字节跳动,对此我想对大家说
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)