| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1900 人关注过本帖
标题:请教高手一个问题(是道作业来的)
只看楼主 加入收藏
garyxuan
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-8-23
收藏
 问题点数:0 回复次数:16 
请教高手一个问题(是道作业来的)

编一个冒泡排序的函数模板实现降序.可以用小于比较,冒泡采用从上往下;也可用大于比较,冒泡采用从下往上.

搜索更多相关主题的帖子: 作业 模板 冒泡 
2004-11-05 19:38
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

我晕~~~一个破例全部都上~~~

2004-11-05 19:51
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
冒泡排序就T*M*D的C++基础书都有,不用拿上来问了吧?
2004-11-05 19:54
Dream
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-11-5
收藏
得分:0 
用FOR循环(确定循环次数),在里面比较大小,然后把大的(小的)换进变量。

!..我鄙视浮躁的人..! 浮躁的人容易问: 我到底该学什么? 别问,学就对了! 浮躁的人容易问: JS有前途吗? 建议你去抢银行! 浮躁的人容易问: 我要中问版,我英文不行! 不行?学呀! 浮躁的人分两种: 只观望而不学的人; 只学而不坚持的人;
2004-11-05 20:41
garyxuan
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-8-23
收藏
得分:0 
大哥,我当然有冒泡的原码了,我现刚学到模板了,但不是很懂,要通过函数模板来实现这个冒泡,应该怎样做啊
2004-11-06 10:37
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

其实原理完全一样,就是把原来的名字改成你的模板名,不过我也没具体试过。

你先试一下,把代码贴上来看看,我懒得找书。不好意思。

2004-11-06 10:55
garyxuan
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-8-23
收藏
得分:0 

我已编写了一个,可以运行,但离题目的要求还差一点点,请版主帮我看看:

template<typename T> void enter(T a[],int); template<typename T> void bubble(T a[],int); template<typename T> void print(T a[],int);

int _tmain() { int a[100],size; cout<<"请确定数组的大小:"; cin>>size; enter(a,size); bubble(a,size); print(a,size); return 0; }

template<typename T> void enter(T a[],int n) { int i; cout<<"请输入"<<n<<"个元素:"; for(i=0;i<n;i++) cin>>a[i]; cout<<"未排序的数组元素为:"<<endl; for(i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl; } template<typename T> void bubble(T a[],int n) { int i,j,t,temp; for(i=1;i<=n-1;i++) { t=n-i; for(j=0;j<=t-1;j++) if(a[j]<a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } } template<typename T> void print(T a[],int n) { int i; cout<<"排序后的数组元素为:"<<endl; for(i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl; }

2004-11-06 16:13
garyxuan
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-8-23
收藏
得分:0 

我的这个排序是适用第一种情况:(用小于比较,冒泡采用从上往下),主要是如何实现(也可用大于比较,冒泡采用从下往上),我把其中的bubble()函数改了一下:

template<typename T> void bubble(T a[],int n) { int i,j,t,temp; for(i=n-1;i>=1;i--) { t=n-i; for(j=t;j>=1;j--) if(a[j]>a[j-1]) {temp=a[j];a[j]=a[j-1];a[j-1]=temp;} } } 请问这个是不是(用大于比较,冒泡采用从下往上),如果是,请问如何与从上往下的统一成一个函数模板

如果不是,请版主帮我修改,麻烦了,我下周二要交上去

2004-11-06 16:21
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

是的。

统一成一个函数,但是功能在函数其实是一样,从上往下和从下往上统一也不过是加个switch,而且题目没有要求统一在一起。

[此贴子已经被作者于2004-11-06 17:40:49编辑过]

2004-11-06 16:40
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

你自己其实可以完成了,我无用武之地了,哈。

[此贴子已经被作者于2004-11-06 17:41:39编辑过]

2004-11-06 17:25
快速回复:请教高手一个问题(是道作业来的)
数据加载中...
 
   



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

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