#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stack>
using namespace std;
/**
*快排
**/
int Partition(int * arr, int len, int start, int end){
if ( arr == NULL || start < 0 || end >= len)
return -1;
//枢轴为end
#if 0
int index = start;
for (int i = start; i < end; i++){
if (arr[i] < arr[end]){
if (i != index){
int tmp = arr[i];
arr[i] = arr[index];
arr[index] = tmp;
}
index++;
}
}
int tmp = arr[end];
arr[end] = arr[index];
arr[index] = tmp;
#endif
//枢轴为start
int index = start;
for (int i = start + 1; i <= end; i++){
if (arr[i] < arr[start]){
index++;
if (i != index){
int tmp = arr[i];
arr[i] = arr[index];
arr[index] =