十六 、快速排序
public class QuickSort {
//划分数组
public static int partition(int[] array ,int left,int right,int point)
{
int leftptr = left -1;
int rightptr = right;
while(true)
{
//左边右移
while(leftptr<rightptr && array[++leftptr] < point);
//右边左移
while(leftptr < rightptr && array[--rightptr]>point);
if(leftptr >= rightptr)
break;
else
{
int tmp = array[leftptr];
array[leftptr] = array[rightptr];
array[rightptr] = tmp;
}
}
//将关键字与当前指向交换
int tmp = array[leftptr];
array[leftptr] = array[right];
array[right] = tmp;
return leftptr;
}
//快速排序
public static void sort(int[] array ,int left,int right)
{
if(left >= right)
return;
//设置关键字
int point = array[right];
//获得切入点,对数组进行划分
int partion = partition(array, left, right, point);
//对左边子数组进行快排
sort(array, left,partion -1);
//右边数组快排
sort(array, partion+1, right);
}
public static void display(int[] array)
{
System.out.print("[");
for(int num:array) //for的高级用法
{
System.out.print(num+" ");
}
System.out.print("]");
System.out.println();
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
2017-03-02 两万五千里之android开发环境搭建