快排递归算法函数

 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 }

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

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

你可能感兴趣的:(算法)