快速排序–java实现
public class quick_sort {
private static int count=0;
public static void main(String[] args) {
int[] nums={1,5,4,9,8,6,3,45,2,7};
show(nums,"未排序");
Quick_sort(nums,0,nums.length-1);
show(nums,"已排序");
}
public static void swap(int[] a,int l,int r ){
int temp=a[l];
a[l]=a[r];
a[r]=temp;
}
public static void show(int[] a,String flag){
System.out.print(flag+": ");
for(int x:a){
System.out.print(x+" ");
}
System.out.print("\n");
}
public static void Quick_sort(int[] nums,int l,int r){
if(l>=r){
return;
}
int basic=nums[r];
int i=l;
int j=r;
while(i<j){
while(nums[i]<=basic&&i<j){
i+=1;
}
while(nums[j]>=basic&&i<j){
j-=1;
}
if(i<j){
swap(nums,i,j);
}
String flag="nei";
show(nums,flag);
}
swap(nums,r,i);
count++;
String flag="第"+count+"排序";
show(nums,flag);
Quick_sort(nums,l,i-1);
Quick_sort(nums,i+1,r);
}
}