转载网址:http://www.oschina.net/code/snippet_103022_2499
快速排序c++实现
1. [代码][C/C++/Objective-C]代码
01 | //2010/12/21 20:37:26 |
02 | //快速排序 |
03 | #include <iostream> |
04 | using namespace std; |
05 |
06 | void sort( int array[], int zz, int yy) |
07 | { |
08 | int z,y,i,k; |
09 |
10 | if (zz<yy) |
11 | { |
12 | z=zz; |
13 | y=yy; |
14 | k=array[z]; |
15 |
16 | do { |
17 | while ((z<y)&&(array[y]>=k)) |
18 | y--; |
19 | if (z<y) //右边的元素小于k,移到k左 |
20 | { |
21 | array[z]=array[y]; |
22 | z=z+1; |
23 | } |
24 | while ((z<y)&&(array[z])<=k) |
25 | z++; |
26 | if (z<y) //左边的元素大于k,移动右边 |
27 | { |
28 | array[y]=array[z]; |
29 | } |
30 |
31 | } while (z!=y); |
32 | array[z]=k; |
33 |
34 | for (i=zz;i<=yy;i++) |
35 | { |
36 | cout<< "a[" <<i<< "]=" <<array[i]<< ";" ; |
37 | } |
38 | cout<<endl; |
39 | sort(array,zz,z-1); |
40 | sort(array,z+1,yy); |
41 | } |
42 | } |
43 | int main() |
44 | { |
45 | int a[10],i; |
46 | cout<< "请输入10个数" <<endl; |
47 |
48 | for (i=0;i<10;i++) |
49 | { cin>>a[i]; } |
50 | sort(a,0,9); |
51 | cout<< "排序结果为" ; |
52 |
53 | for (i=0;i<10;i++) |
54 | cout<<a[i]<< ";" ; |
55 | cout<<endl; |
56 |
57 | return 0; |
58 | } |