比如有10数据的数组位置0 1 2 3 4 5 6 7 8 9
一开始首先把0位置的数据作为参考点。
小于参考点的数据加到前面,然后start位置加一,大于参考点数据放到后面然后end位置减一,一直比较数组完了,最后的starts下标就是参考点位置记作middle
找到middle后就用两个递归
- void _quick_sort(int array[], int start, int end)
- {
- int middle;
- if(start >= end)
- return;
- middle = get_middle(array, start, end);
- _quick_sort(array, start, middle -1);
- _quick_sort(array, middle + 1, end);
- }
就可以排好了
文章和程序参考这位博主的:
http://blog.csdn.net/feixiaoxing/article/details/6845132