快速排序c++实现

 转载网址: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     }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值