快速排序的单边循环(递归)
1.基准元素pivot/mark 指针
mark指针代表的是小于基准元素的区域边界
2.遍历到的元素大于基准元素,继续遍历;
3.遍历到的元素小于基准元素,mark指针向右移动一位(意味着多了一位比基准元素小的元素,所以pivot的区域边界增大了),最新遍历到的元素和mark位置的元素交换位置,因为该元素属于小于pivot的区域。
4.这一轮宣告结束时,mark 左侧都是比它小的,右侧都是比它大的。再分成两部分进行递归,就完成了单边循环的快速排序。
public static void quickSort(int[] arr,int startIndex,int endIndex)