java中怎么实现快速排序
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章给大家介绍java中怎么实现快速排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、原理选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的
千家信息网最后更新 2025年12月01日java中怎么实现快速排序
这篇文章给大家介绍java中怎么实现快速排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、原理
选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。
二、描述
一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个比基准值大的值才交换。直到从前往后的比较索引>从后往前比较的索引,结束第一次循环,此时,对于基准值来说,左右两边就是有序的了。重复上述循环。
三、实例
public class maxtest { public static void main(String[] args) { //###################快速排序法start###################//int[] state = {2,13,7,6,15,9,10,12,3,16,8,11,14,5,1}; int start = 0; int end = state.length-1; System.out.print("初始值:"); for (int i = 0; i < state.length; i++) { System.out.print(state[i]+","); } System.out.println(""); sort(state,start,end); //###################快速排序法end###################// } public static int partition(int []array,int lo,int hi){//固定的切分方式int key=array[lo];while(lo=key&&hi>lo){//从后半部分向前扫描hi--; } array[lo]=array[hi];while(array[lo]<=key&&hi>lo){ lo++; } array[hi]=array[lo]; } System.out.println(""); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+","); } array[hi]=key;return hi; } public static void sort(int[] array,int lo ,int hi){if(lo>=hi){return ; }int index=partition(array,lo,hi); sort(array,lo,index-1); sort(array,index+1,hi); }}结果如下:
初始值:2,13,7,6,15,9,10,12,3,16,8,11,14,5,1,1,13,7,6,15,9,10,12,3,16,8,11,14,5,13,1,2,5,6,3,9,10,12,9,16,8,11,14,15,13,1,2,3,6,6,7,10,12,9,16,8,11,14,15,13,1,2,3,5,6,7,8,9,9,16,12,11,14,15,13,1,2,3,5,6,7,8,9,10,16,12,11,14,15,13,1,2,3,5,6,7,8,9,10,13,12,11,14,15,13,1,2,3,5,6,7,8,9,10,11,12,11,14,15,16,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,
图列如下:
关于java中怎么实现快速排序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
基准
基准值
排序
循环
位置
内容
序列
更多
索引
帮助
选择
不错
有序
元素
关键
兴趣
半部
原理
右边
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
校园网络安全管理具体
网络技术公司融资目的
哪个游戏服务器最好玩
网络安全法 微信
倩女幽魂夜神服务器
5e无法在安全服务器商游戏
延庆区品牌软件开发程序
安卓手机数据库
各个版本的幻塔服务器名称
协同软件开发的服务和质量
龙岗区无源网络技术开发价格多少
暗盾网络安全论坛
分页用数据库语句如何实现的
给银行做软件开发的公司
c 注册 数据库
苹果的邮箱收件服务器
军队网络安全课件
畅捷通t+数据库表
网络安全三巨头分析
数据库一般装什么盘
sql数据库中的建表语句怎么看
nist20数据库
access是正规数据库吗
济南成人软件开发培训机构
数据库查询某字段名字长度
软件开发预付款
广州软件开发地点
工行软件开发中心经理三级
ice服务器和ec有什么关系
北京分发软件开发公司