/**
* @program: sort
* @author: peanut
* @create: 2020.9.5
* @description: 快速排序
* 先从数列中取出一个数作为基准数
* 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边
* 再对左右区间重复第二步,直到各区间只有一个数
**/
public void sort(int[] args,int left,int right) {
if (left>=right) return ;
int start=left;
int end=right;
int flag=left;
while(left<right) {
while ((left<right)&&(args[right]>=args[flag])) {
right--;
}
if (args[right]<args[flag]) {
int tmp=args[right];
args[right]=args[flag];
args[flag]=tmp;
flag=right;
}
while ((left<right)&&(args[left]<=args[flag])) {
left++;
}
if (args[left]>args[flag]) {
int tmp=args[left];
args[left]=args[flag];
args[flag]=tmp;
flag=left;
}
}
sort(args,start, left-1);
sort(args,left+1, end);
}
java实现快速排序
最新推荐文章于 2025-02-24 16:47:11 发布