千家信息网

java中怎么实现快速排序

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家介绍java中怎么实现快速排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、原理选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的
千家信息网最后更新 2025年01月31日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安全错误 数据库的锁怎样保障安全 如何在本地电脑搭建服务器 软件开发中的系统流程图 浙江网络技术服务案例 旅游软件开发与设计 公安部网络安全第802号令 游戏与服务器连接失败该怎么样 广州美赞软件开发科技有限公司 穿越火线外国服务器有刀战吗 厦门工程项目管控软件开发平台 数据库编码 技术研究 重要的软件开发公司 国药控股软件开发 网络安全的标准是什么意思 网络安全工作总结第一季度 网络安全手抄报顺口溜内容 亿网通达网络技术有限公司 模具企业erp软件开发 工业软件开发技术专业前景 大智财务报表数据库代码 常见的服务器的类型 厦门人才网络安全手抄报 数据库原理干什么的 湖北同上网络安全一堂课 怎么判断数据库的表存不存在 数据库技术中的专业素质培养 服务器只能识别一个U盘启动区 数据库覆盖锁 江西机电软件开发注意事项 服务器的管理 2 云服务器可以装win10系统吗
0