package sort;
public class QuickSortTest
{
public static void main(String[] args) throws Exception
{
QuickSort qs = new QuickSort();
int[] data={1,3};
//½«´ýÅÅÐòµÄÊý×鸳¸ø¿ìÅŵÄÊý×é
qs.data =data;
//¶ÔÕû¸öÊý×é½øÐпìÅÅ
qs.quickSort(0, qs.data.length-1);
//´òÓ¡³öÀ´
qs.display();
}
}
class QuickSort
{
//ÓÃÀ´ÅÅÐòµÄÊý×é
int[] data;
//·ÖÀ뺯Êý£¬½«Ð¡ÓÚpµÄÔªËØ·ÅÔÚÆä×ó±ß£¬´óÓÚpµÄÔªËØ·ÅÔÚÓÒ±ß
public int partition( int[] array, int left , int right) throws Exception
{
//µ²°å×ʼÔÚ×î×ó±ß,storeÓÃÀ´×öµ²°åÖ»Ó㬱ÈÖÐÊàֵСµÄ·ÅÔÚstore×ó±ß£¬ÆäÓàµÄ·ÅÔÚÓÒ±ß
//½«Ð¡ÓÚÖÐÊàÖµµÄÔªËØ·ÅÔÚµ²°å´¦ÔªËصÄ×ó±ß(µ²°å´¦±¾ÉíÔªËØÓÃ×÷½»»»Ö®Ó㬲»Ò»¶¨±ÈÖÐÊàÔªËØÐ¡)
int temp;
int store =left;
int key=array[right];//keyΪÖÐÊàÖµ,Ñ¡¶¨ÖÐÊàֵΪ×îÓұߵÄÔªËØ
for(int i =left; i<=right-1; i++)
{
//½«Ð¡ÓÚÖÐÊàÖµµÄÔªËØ·ÅÔÚµ²°åµÄ×ó±ß
if(array[i]<=key)
{
temp = array[i];
array[i] = array[store];
array[store] =temp;
}
//µ²°åÓÒÒÆ
store++;
}
//½»»»ÖÐÊàÔªËØºÍµ²°å´¦ÔªËصÄλÖÃ
int temp2=array[store];
array[store] =key;
key=temp2;
//·µ»ØÖÐÊàÖµpµÄ´æ´¢Î»Öã¬Íê³É·ÖÀë
return store;
}
//¿ìËÙÅÅÐòµÄ¹ý³Ì
public void quickSort( int left, int right) throws Exception
{
//µÝ¹éº¯ÊýÌø³öµÄÌõ¼þ,Ò²¿É²»Òª£¬ÒòΪºÍÊäÈëÓйØ
if(left >= right)
return;
if(left < right)
{
int q =partition(data,left,right);
partition(data, left, q-1);
//Èôq¸ÕºÃΪ×îºóÒ»¸öÔªËØ£¬ÔòÓпÉÄÜÒç³ö
partition(data, q+1, right);
}
}
//½«Êý×éÏÔʾ³öÀ´
public void display()
{
for(int i=0; i