快速排序c++实现

来源:互联网 发布:美的售后软件 编辑:程序博客网 时间:2024/06/07 02:09

 转载网址: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>
04using namespace std;
05 
06void 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    }
43int 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    }

原创粉丝点击