package 算法;
public class 快排 {
static int items[]=new int[]{18,21,1,8,19,15,17,18};
public static void main(String args[]){
quickSort(items,0,7);
for(int i=0;i<8;i++)
System.out.print(items[i]+" ");
}
static void quickSort(int items[],int m,int n){
if(m<n){
int p=partition(items,m,n);
quickSort(items, m, p-1);
quickSort(items, p+1, n);
}
}
static int partition(int items[],int m,int n){
int i=m;int j=n;
while(i<j){
while(i<j&&items[i]<=items[j]) j--;//右侧
//while中断,则判断是否是因为items[i]>items[j],是则交换
if(i<j){
int temp;temp=items[i];items[i]=items[j];items[j]=temp;
i++;
}
while(i<j&&items[i]<=items[j]) i++;//左侧
if(i<j){
int temp;temp=items[i];items[i]=items[j];items[j]=temp;
j--;
}
}
return i;
}
}
快速排序
最新推荐文章于 2023-07-12 10:59:32 发布