快速排序

 1 void QuickSort(int *array, int from, int to)
 2 {
 3     if(from>=to)return;
 4     int pivot = array[from]; 
 5 
 6     int i = from, j, temp;
 7     for(j = from + 1;j <= to;j++)
 8     {
 9         if(array[j] < pivot) 
10         {
11             i = i + 1;
12             temp = array[i];
13             array[i] = array[j];
14             array[j] = temp;
15         }
16 
17     }
18 
19     temp = array[i];
20     array[i] = array[from];
21     array[from] = temp;
22 
23     QuickSort(array,from,i-1);
24     QuickSort(array,i+1,to);
25 }

 快速排序每一次遍历完都把基准数放到正确的位置上,每一次遍历完所有比基准数小的数都在其左边,所有比基准数大的数都在其右边。

posted @ 2013-10-17 21:40  mic_yx  阅读(168)  评论(0编辑  收藏  举报