快速排序算法

package sorting;

public class Quick{
/*双指针,设置两个参数,left和right,分别从左到右边寻找第一个大于a[0](数组的第一个元素)的值,从右到左寻找第一个
小于i的值,并进行交换位置。当left和right的值不相等的时候,继续寻找,当相等的时候,结束循环,并把a[0]的值和a[i]替换。
在分别把i左边的数组和右边的数组快速排序(递归)
* */
public static void main(String[] args) {
int a[] = {5,7,9,8,6,10,12,21,2,1,78,4} ; //数组a[]
quickSorting(a,0,a.length-1);
for (int i : a) {
System.out.print(i+" ") ; //输出数组
}
}
private static void quickSorting(int[] a, int left, int right) {
if ( left > right ) {
return;
}
int i = left;
int j = right;
int base = a[left];
while (i != j) {
while ( a[j]>= base&&i<j) {
j--;
}
while ( a[i] <= base&&i<j) {
i++;
}
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
a[left] = a[i];
a[i] = base;
quickSorting(a,left,i-1);
quickSorting(a,i+1,right);
}
}
posted @   苏米图惹  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示