0
点赞
收藏
分享

微信扫一扫

01快排模板


确定边界

选中目标

小于它的放左边,大于它的放右边

递归左右两边 

/**
* 快排模板
*/
static void quitSort(int [] arr ,int l,int r){
if(l>=r) return ;
int i=l-1,j=r+1;
int target=arr[l];//选中左边的值为目标值
while(i<j){
do {
i++;
}while(arr[i]<target);//小于选中的数 放到左边`
do {
j--;
}while(arr[j]>target);//大于选中的数 放到右边
// i<j是停止,那么左右都不满足情况 此时交换ij的值
if(i<j){
swap(arr,i,j);
}
}

//完事之后把arr[j] 左右两边的值继续进行快排 这里一定是j
quitSort(arr,l,j);
quitSort(arr,j+1,r);
}

private static void swap(int[] arr, int i, int j) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}

举报

相关推荐

快排模板(超简单)

经典快排

快排+归并

链表快排

C++快排

排序思想-快排

归并和快排

js 实现快排

0 条评论