快排递归算法函数
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 }
快排算法大家基本都清楚,而且我的代码里写的意思也比较明白了~~~
不过小数组的快排仍需改进,在小数量级使用递归效率太低