1 #include <iostream> //#include <stdio.h> <stdlib.h>
2 using namespace std;
3
4
5
6 #define SIZE 11
7 int par(int l,int r,int data[SIZE]);
8 void quick(int l,int r,int data[SIZE]);
9 int main()
10 {
11 int num[SIZE]={21,30,42,1,5,2,23,78,15,23,53};
12 quick(0,SIZE-1,num);
13 for(int i=0;i<SIZE;i++)
14 {
15 cout <<num[i]<<endl;
16 }
17 return 0;
18 }
19 int par(int l,int r,int data[SIZE])
20 {
21 int key=data[r];
22 int i=l-1;
23 int j=r;
24 int temp=0;
25 while(1){
26 while(data[++i]<key);
27 while(data[--j]>key)
28 {
29 if(i==j)
30 break;
31 }
32 if(j<=i)
33 break;
34 temp=data[i];
35 data[i]=data[j];
36 data[j]=temp;
37 }
38 temp=data[i];
39 data[i]=data[r];
40 data[r]=temp;
41 return i;
42 }
43 void quick(int l,int r,int data[SIZE])
44 {
45
46 if(r<=l)
47 return;
48 int p=par(l,r,data);
49 quick(l,p-1,data);
50 quick(p+1,r,data);
51 }