非递归实现时借助栈,
package sort;
import java.util.Stack;
public class Sort
{
/*
* 非递归版本*/
public void quick2(int[] array){
if (array == null || array.length == 1) return ;
//存放开始与结束索引
Stack<Integer> s = new Stack<Integer>();
//压栈
s.push(0);
s.push(array.length - 1);
while (!s.empty()) {
int right = s.pop();
int left = s.pop();
//如果最大索引小于等于左边索引,说明结束了
if (right <= left) continue;
int i = partition(array, left, right);
if (left < i