快排的整体思路就是选定一个数,从后面把小于它的数放到前面,从前面把大于他的数放到后面。
public class QuickSort {
public void quickSort(int []array,int low,int high)
{
if(low<high)//低位小于高位
{
int i=low,j=high;
int x=array[low];//临时存储被排的数
while(i<j)
{
while(array[j]>x&&i<j)j--; //从后面把小于x的数放到前面
if(i<j)
array[i++]=array[j];
while(array[i]<x&&i<j)i++; //从前面把大于x的数放到后面
if(i<j)
array[j--]=array[i];
}
array[i]=x;//放置x
quickSort(array,low,i-1);//递归调用
quickSort(array,i+1,high);
}
}
public static void main(String[] args) {
int array[]={38,10,60,54,80,40,100,16};
QuikSort a=new QuikSort();
a.quickSort(array, 0, 7);
for(int i=0;i<8;i++)
System.out.print(array[i]+" ");
}
}
<img src="https://img-blog.youkuaiyun.com/20140722113131571?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTkxODI2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />