| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 640 人关注过本帖
标题:高手帮忙 求c++ 快速排序
只看楼主 加入收藏
hugh2006
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-12
收藏
 问题点数:0 回复次数:5 
高手帮忙 求c++ 快速排序
#include<iostream>
using namespace std;
void QuickSort(int *a,int low,int high)
{
     int i=low,j=high;
     int temp=a[low];
     if(i<j)
     {
            while(i<j)
            {
                      while(i<j&&temp<a[j])j--;
                      if(i<j){a[i]=a[j];i++;}
                      while(i<j&&temp>=a[i])i++;
                      if(i<j){a[j]=a[i];j++;}
            }
            a[i]=temp;
            QuickSort(a,low,i-1);
            QuickSort(a,i+1,high);
     }         
}

 main()
{
      int n;
      
      while(cin>>n)
      {
      int *a=new int [n];
      int i=0;
      int p=n;
      while(p--)
      {cin>>a[i];i++;}
      QuickSort(a,0,n-1);
      p=n;
      i=0;
      while(p--)
      {cout<<a[i]<<" ";i++;}
      cout<<endl;
      }
      system("pause");
}
17
23 949 123 23 334 12 245 3 45 66 21 -34 5 6 7 22 34
用这组数据测试结果是
-34 3 5 6 7 12 21 22 23 23 0 34 45 66 123 245 949
应该是
-34 3 5 6 7 12 21 22 23 23 34 45 66 123 245 334 949
搜索更多相关主题的帖子: include 
2008-07-16 16:43
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
没问题吧,除了代码风格一塌糊涂...

i like linux...
2008-07-16 17:30
hugh2006
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-12
收藏
得分:0 
但是你可运 行下那组数据,结果是不对的,
还有代码风格,请赐教
2008-07-17 00:06
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
你用的是三路划分的快速排序.说实话,你应该给点注释的,不然大家很难理解你写的是什么.
程序是正确的,我已再次验证,我用GCC编译,用code::block运行.只是对main()稍作修改.int main(){ return 0;}
我也正在写排序,昨晚开始写,今天上午应该能写完吧,到时再一起交流.

呵呵,我要用差不多一天的时间来写 ,哎,其中 菜 的滋味....

另外,论坛已有人给出了排序算法小全,你可以看一下.
https://bbs.bccn.net/viewthread.php?tid=213535&highlight=%2BStarWing83

i like linux...
2008-07-18 09:28
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 

i like linux...
2008-07-18 10:58
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
奇怪的是你的代码中没有swap,你不用交换元素也可以排序?

Fight  to win  or  die...
2008-07-18 23:27
快速回复:高手帮忙 求c++ 快速排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030952 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved