See More

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=key) hight--; sortArray[low] = sortArray[hight]; while(low