java实现各种排序算法,java快速排序的两种方法
1.什么是快速排序?
实际上,快速排序是冒泡排序的改进。
2.快速排序的思想
要排序的数据通过一次排序分成两个独立的部分,一部分的所有数据小于另一部分的所有数据。然后用这种方法对两部分数据进行快速排序,整个排序过程可以递归进行,使整个数据成为有序序列。
(视频教程推荐:java视频教程)
3.实现思路
(1)以第一个关键字K 1为控制字,将[K 1,K 2,…,K n]分成两个子区域,使左侧区域的所有关键字小于等于K 1,右侧区域的所有关键字大于等于K 1。最后,控制字占据两个子区域中间的适当位置。分区中的数据仍然是无序的。
(2)将左侧区域作为一个整体,用(1)中的步骤处理,右侧区域同样处理。(即递归)
(3)重复步骤(1)和(2),直到左侧区域被处理。
4.实现代码。
静态void快速排序(int n[],int left,int right) {
int dp
如果(左/右){
dp=分区(n,左,右);
快速排序(n,左,DP-1);
快速排序(n,dp 1,右);
}
}
静态int分区(int n[],int left,int right) {
int pivot=n[left];
while(左/右){
while(左右n[右]=pivot)
右-;
如果(左/右)
n[左]=n[右];
while(左右n[左]=pivot)
左;
如果(左/右)
n[右-]=n[左];
}
n[left]=枢轴;
向左返回;
}推荐教程:java入门程序以上是java实现快速排序的思路的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。