前后指针法
思想就是俩个指针一前一后,然后从头开始遍历,当遇到比基准值小的值,俩个指针往后走一步,遇到比基准值大的就prev指针不动,cur往后走,当cur遇到比基准值小的就停下来, 然后cur指针每一次停止俩个指针之间的位置比较一下,如果俩个之间的差不是一的话,就交换俩个位置的数据,一直循环,直到遍历结束,用prev的后一个不是基准元素的位置的话,就,让prev和基准值进行交换。
图示:
代码实现:
// 快速排序前后指针法
int PartSort3(int* arr, int left, int right)