如何使用java实现快速排序
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章将为大家详细讲解有关如何使用java实现快速排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1) 快速排序算法介绍快速排序(quicksort)是对冒泡排
千家信息网最后更新 2025年02月02日如何使用java实现快速排序
这篇文章将为大家详细讲解有关如何使用java实现快速排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1) 快速排序算法介绍
快速排序(quicksort)是对冒泡排序的一种改进。基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2) 快速排序法示意图:
3) 快速排序算法应用实列:
要求: 对[-9,78,0,23,-567,70] 进行从小到大的排序,要求使用快速排序法。
a. 如果取消左右递归,结果是 -9 -567 0 23 78 70
b. 如果取消左右递归,结果是 -567 -9 0 23 78 70
c. 如果取消左递归,结果是 -9 -567 0 23 70 78
d. 代码实现
import java.util.Arrays;//快速排序public class QuickSort { public static void main(String[] args) { int[] arr= {-9,78,0,23,-567,70, -1,900, 4561}; System.out.println("排序前"); System.out.println(Arrays.toString(arr)); QuickSort.quickSort(arr, 0, arr.length-1); System.out.println("排序后"); System.out.println(Arrays.toString(arr)); } public static void quickSort(int[] arr,int left,int right) { int l = left;//左下标 int r = right;//右下标 //中轴值,中间值 int pivot = arr[(left+right)/2]; int temp = 0;//中间值,作为交换时使用 /*while循环的目的是让比pivot值小放到左边,比pivot值大放到右边 */ while(l < r) { //在pivot的左边一直找,找到大于等于pivot值,才退出 while(arr[l]pivot) { r-=1; } /* * 如果l>=r说明pivot的左右两的值,已经按照左边全部是小于等于pivot值,右边全部是大于等于pivot */ if(l>=r) { break; } //交换 temp=arr[l]; arr[l]=arr[r]; arr[r]=temp; //如果交换完后,发现这个arr[l]==pivot值 相等r--,前移 if(arr[l]==pivot) { r-=1; } //如果交换完后,发现这个arr[r]==pivot值 相等l++,后移 if(arr[l]==pivot) { l+=1; } } //如果l==r,必须l++,r--,否则会出现栈溢出 if(l==r) { l+=1; r-=1; } //向左递归 if(left l) { quickSort(arr, l, right); } }}
关于"如何使用java实现快速排序"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
排序
数据
递归
篇文章
结果
右边
更多
算法
部分
不错
实用
有序
从小到大
中轴
从小
代码
内容
序列
思想
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
贵州中小学生教育与网络安全
潜江网络安全企业
软件开发平台购买
老版本数据库与新版本不兼容
什么是ibm服务器
计算机三级网络技术自学方法
消防app软件开发作业
山东单招网络技术考试题目
网络安全管理第七章在线测试
服务器 阵列卡
数据库中的约束方式
csgo主播玩的什么服务器
饥荒联机版怎么运行服务器模组
宣传网络安全意识的英语作文
虚拟网络技术的实践
服务器文件扫描
计算机网络技术专业更专业的说法
华为服务器产品线
dell 渲染服务器
地球图片互联网图片科技感
打印机显示重启打印服务器
检查网络安全的苹果手机软件
移动宽带家庭组网服务器
全局为王企业网络安全
奥丁神叛一直服务器繁忙
php获取数据库返回json
500g服务器硬盘
csgo主播玩的什么服务器
如何在小蜜蜂服务器里刷点卷
河北dns运营商服务器地址