java中快速排序法是什么
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章将为大家详细讲解有关java中快速排序法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。快速排序法:顾名思议,快速排序法是实践中的一种快速的排序算法,在
千家信息网最后更新 2025年02月05日java中快速排序法是什么
这篇文章将为大家详细讲解有关java中快速排序法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
快速排序法:
顾名思议,快速排序法是实践中的一种快速的排序算法,在c++或对java基本类型的排序中特别有用。它的平均运行时间是0(N log N)。该算法之所以特别快,主要是由于非常精练和高度优化的内部循环。
快速排序是对冒泡法的一种改进。通过一趟排序将要排序的的数据分割成独立的两部分,其中一部分的所有数据都比另一部分所有的数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
示意图:
这里 定义最左边元素 为left 最右边元素为right
p 元素的值 就是 2对应的索引 0 加上 5对应的索引 7 之和 除以2 得到 索引为3 对应的元素7
用左边大于 7的数跟右边小于7的数进行 交换位置 一直进行 并且 中间的p也要一直变化位置
直到 排完
代码实现:
import java.util.Arrays; public class kuaisu { public static void main(String[] args) { int arrays[]=new int[]{2,9,4,7,3,3,6,5}; sort(arrays,0,arrays.length-1); System.out.println(Arrays.toString(arrays)); }
public static void sort(int arrays[],int left,int right){ int l=left ;//给定下标 int r=right;//给定下标 int temp; //定义一个变量 作为中间值 交换 左右两边的元素位置 int pivot=arrays[(left+right)/2];//中间值 while(larrays[pivot]){ r--; }//直到左边元素大于右边元素就结束 if(l>=r){ break; } temp=arrays[l]; arrays[l]=arrays[r]; arrays[r]=temp; //交换完arrays[l]=pivot if(arrays[l]==pivot){ r--; } if(arrays[r]==pivot){ l++; } if(r==l){ //要让左边元素 往左边移 右边元素往右边移 错开 l++; r--; } //对左边进行递归 if(left l){ sort(arrays,l,right); } } }}
控制台输出结果 如下:
关于"java中快速排序法是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
排序
元素
右边
数据
位置
篇文章
索引
下标
更多
算法
部分
递归
不错
实用
有序
精练
之和
之所以
代码
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全周 侯金刚
济南浩宇梵星网络技术
盐城制造业wms软件开发
华盾信安网络技术有限公司
本地数据库如何导入数据库
It金字塔 顶端 网络安全
php判断执行数据库方法
软件开发里的里程碑
公众号推送+大数据库设计
大连春华互联网科技公司
redis如何创建数据库
工业设计服务器电脑
深信服应用服务器
西安数据库大神
网络安全处罚法案例
信息发布服务器的功能
网络技术维护员工作权限
小班生网络安全绘画图片大全
深圳互联网教育科技公司
山西大学网络安全考研
深圳方寸酷游网络技术
数据库的视频教学
网络安全预防电信诈骗内容
华为手机邮箱接收服务器
腾讯云能做游戏服务器
医保定制软件开发
常德快速软件开发
网络安全提现的问题
高科技互联网公司卖菜
硬盘检测软件开发