快排递归算法函数

 1 void qsort(int * array, int length)
 2 {
 3     if(length <= 1)
 4         return;
 5     int i = 0,j = length - 1;
 6     int Addr = 0;
 7     int KeyWord = array[0];//the first number to be sort
 8     while(i < j)
 9     {
10         while(array[j] >= KeyWord && j > i)
11             -- j;
12         swap(array[j], array[i]);
13         while(array[i] <= KeyWord && j > i)
14             ++ i;
15         swap(array[i], array[j]);
16     }
17     qsort(array, i);
18     qsort(&array[i] + 1, length - i - 1);
19 }

快排算法大家基本都清楚,而且我的代码里写的意思也比较明白了~~~

不过小数组的快排仍需改进,在小数量级使用递归效率太低

posted @ 2013-05-07 13:14  Matrix_R  阅读(256)  评论(0编辑  收藏  举报