Java快速排序
Java快速排序
/**
* 快速排序
*
* @author yl
*/
public class QuickSort {
public static void main(String[] args) {
int[] array = {7, 6, 9, 3, 1, 5, 2, 4};
System.out.println(Arrays.toString(quickSort(array,0,array.length-1)));
}
/**
* 快速排序算法
* 参考:https://blog.csdn.net/morewindows/article/details/6684558、https://blog.csdn.net/shujuelin/article/details/82423852
* @param array
* @param left
* @param right
* @return
*/
public static int[] quickSort(int[] array,int left,int right) {
if (left>right){
return array;
}
// 将第一个数作为基准数
int baseNum = array[left];
// 左边数的下标
int leftIndex=left;
// 右边数的下标
int rightIndex=right;
while (leftIndex < rightIndex) {
// 从右边开始找第一个小于基准数的数的下标
while (leftIndex < rightIndex && array[rightIndex] >= baseNum) {
rightIndex--;
}
// 从左边开始找第一个大于基准数的数的下标
while (leftIndex < rightIndex && array[leftIndex] <= baseNum) {
leftIndex++;
}
// 将找到的数左右互换
if (leftIndex<rightIndex){
int temp=array[leftIndex];
array[leftIndex]=array[rightIndex];
array[rightIndex]=temp;
}
}
// 当左边下标等于右边下标时,将基准数和该下标对应数互换
array[left]=array[leftIndex];
array[leftIndex]=baseNum;
// 递归调用
quickSort(array,left,rightIndex-1);
quickSort(array,rightIndex+1,right);
return array;
}
}
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!