双边循环法下的快速排序
(1)选定基准元素pivot,并且设置两个指针left和right,指向数列的最左和最右边两个元素。 (2)接下来进行第一次循环,从right指针开始,让指针所指向元素和基准元素做比较。如果大于或者等于pivot,则指针向左移动;如果小于pivot,则right指针停止移动,切换到left指针。 (3)left指针移动时,让指针所指向的元素和基准元素作比较。如果小于或等于pivot,则指针向右移动;如果大于pivot,则left指针停止移动。 (4)直到left指针和right指针重合,将基准元素pivot与指针重合处所指向内容交换。第一轮交换结束。具体代码如下所示 package com.company; import java.lang.reflect.Array; import java.util.Arrays; public class quickSort { public static void quickSort(int[] arr,int startIndex,int endIndex) { // 递归结束条件:startIndex大于或者等于endIndex时 if(startIndex>=endIndex){ return; } //得到基准元素位置 int pivotIndex=partition(arr,startIndex,endIndex); /