1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#include <iostream>;
using namespace std;
int Pivot(int info[],int left,int right){
int temp;
int p=info[left];
int l=left-1;
int r=right+1;
while(l < r){
if(info[r] < p){
r--;
}
if(info[l] > p){
l++;
}
//swap feature
if(l < r){
temp = info[l];
info[l]=info[r];
info[r] = temp;
}
}
return r;
}
void Quicksort(int info[],int left,int right){
int middle;
if (left<right)
{
middle = Pivot(info,left,right);
Quicksort(info,left,middle);
Quicksort(info,middle+1,right);
}
}
int main(){
int Test[10]={5,6,7,9,10,11,8,12,15,16};
Quicksort(Test,0,10);
for(int i=0;i<10;i++){
cout << Test[i]<< "\n";
}
system("PAUSE");
return 0;
}
|