快排

 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 }

 

posted @ 2017-01-24 14:50  jintg  阅读(204)  评论(0)    收藏  举报