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

一个算法考题,在空白添上适当语句,并说明算法功能:

(画线后面是我填的答案)

void suanfa(SeqList R)

 {

int i,j,x,b;

i=1,b=1;//b为真

while(i<n && b)

{

b=0;

for(j=1;j<n;i++)

if(__________) R[j]>R[j+1]

{

x=R[j];

R[j]=R[j+1];

R[j+1]=x;

___________; j++;b=1;

}

}

}
=======================================

我认为和这个程序原理是一样的,上面的是自上向下扫描而已

void BubbleSort(SeqList R)

{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序

int i,j;

Boolean exchange; //交换标志

for(i=1;i<n;i++)

{ //最多做n-1趟排序

exchange=FALSE; //本趟排序开始前,交换标志应为假

for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描

if(R[j+1].key<R[j].key){//交换记录

R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元

R[j+1]=R[j];

R[j]=R[0];

exchange=TRUE; //发生了交换,故将交换标志置为真

}

if(!exchange) //本趟排序未发生交换,提前终止算法

return;

} //endfor(外循环)

} //BubbleSort

搜索更多相关主题的帖子: 算法 
2005-12-01 13:11
快速回复:帮我看看这个算法题,谢谢!
数据加载中...
 
   



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

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