| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1593 人关注过本帖
标题:求助一个排序函数!
只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:34 
求助一个排序函数!

编制一个函数qsort(模拟库函数qsort)使其能解决下面3个问题:
从小往大的排序?
1 :对 11,13,8,19,-21,32排序
2: 对 11.2,14.1, -32.254,3.14159265,-2.182818281828,-2.182818281829,35.000排序
3:对 god, dog, good ,goods, best , dest, bet ,beast, cast排序(字母长的排最后)

用“一个函数”“解决三个问题”!

搜索更多相关主题的帖子: 函数 
2006-08-19 22:19
ligt0610
Rank: 1
等 级:新手上路
帖 子:204
专家分:5
注 册:2006-6-29
收藏
得分:0 
为什么不直接用库中的qsort   or    sort    函数啊????

通过不断的学习与思考才是提高自己能力的最好途径。。。。。。。
2006-08-19 22:52
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-20 00:58
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
用template可以实现无数种类型。对自定义类型需要规定比大小的规则,当然楼主要得int,float都不需要。

http://myajax95./
2006-08-20 01:46
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
引用穆扬:
坦率地说
从楼主发过的一些帖子看
楼主目前还不具备考虑这个问题的能力
建议楼主以后再考虑

谢谢你的建议!尽管我
目前还不具备考虑这个问题的能力,
但是如果能看到你们解答指点,我想我还是能够看出写东西来!
所以我觉得你的意见并不完全正确!
2006-08-20 15:25
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
template<class T>
void qsort(T data[])
{
for(int i=0;i<sizeof(date)/sizeof(T)-1;i++)
{
SetSmallest(data,data[i],i);
}
}

template<class T>
void SetSmallest(T data[],T &smallInfo,int startPos)
{
int j=startPos
smallInfo=data[startPos];
for(int i=startPos;i<sizeof(data)/sizeof(T);i++)
if(smallInfo>data[i])
{
smallInfo=data[i];
j=i
}
T temp=data[j];
data[j]=data[startPos];
data[startPos]=temp;
}

[此贴子已经被作者于2006-8-21 8:56:41编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-20 23:45
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
6楼的算法好像不如qsort吧?感觉复杂度是N^2,而qsort应该是NlogN吧?这算法更像是冒泡。

http://myajax95./
2006-08-21 00:01
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-21 08:23
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
呵呵,我对排序算法只写过这一种,不会其他的,有时间会去看可数据结构里的排序的。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-21 08:54
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
以下是引用wfpb在2006-8-20 23:45:43的发言:
template<class T>
void qsort(T data[])
{
for(int i=0;i<sizeof(date)/sizeof(T)-1;i++)
{
SetSmallest(data,data[i],i);
}
}

template<class T>
void SetSmallest(T data[],T &smallInfo,int startPos)
{
int j=startPos
smallInfo=data[startPos];
for(int i=startPos;i<sizeof(data)/sizeof(T);i++)
if(smallInfo>data[i])
{
smallInfo=data[i];
j=i
}
T temp=data[j];
data[j]=data[startPos];
data[startPos]=temp;
}

我如何才能将 char a[][6]={"abcd","abcce","abf","abccd"}传给你的qsort 呢 ?
我看你的哪个qsort 定义的是一维数组,恐怕不能解决这个问题吧!

(3:对 god, dog, good ,goods, best , dest, bet ,beast, cast排序(字母长的排最后))

[此贴子已经被作者于2006-8-21 12:19:01编辑过]

2006-08-21 12:16
快速回复:求助一个排序函数!
数据加载中...
 
   



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

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