//快速排序//划分操作,返回划分位置
int partition(int a[], int left, int right){
int pivot = a[left];while(left < right){while(left < right && a[right]>= pivot)
right--;
a[left]= a[right];while(left < right && a[left]<= pivot)
left++;
a[right]= a[left];}
a[left]= pivot;return left;//此时 left 下标正好将其一分为二}//利用栈实现非递归算法voidQsort(int a[], int len){
int left, right;
int mid;
int stack[1000];
int top =0;//top = 0 栈空
stack[top++]=0;
stack[top++]= len -1;while(top >0){
right = stack[--top];
left = stack[--top];
mid =partition(a, left, right);if(mid -1> left){
stack[top++]= left;
stack[top++]= mid -1;}if(mid +1< right){
stack[top++]= mid +1;
stack[top++]= right;}}}