标题:c语法 3次优化后的冒泡法
取消只看楼主
rove_pro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-11-24
 问题点数:0 回复次数:2 
c语法 3次优化后的冒泡法

#include <stdio.h>
#define dmax 7

int main ()
{
int i, k, sum[dmax], w, j, z = 0;

for (i=0; i<dmax; ++i)
{
printf("shu ru di %d ge shu:",i+1);
scanf("%d",&sum[i]);
}

for (i=dmax-1; i>0; --i)
{
for (k=j=0; k<i; ++k)
{
if (sum[k] < sum[k+1])
{
w = sum[k];
sum[k] = sum[k+1];
sum[k+1] = w;
j = k;
z++;
}
}
}

printf("\n");

for (i=0; i<dmax; ++i)
{
printf("%d ",sum[i]);
}
printf("\n%d",z);
return 0;
}


原代码我就不发了,以上算法是冒泡法的改进

搜索更多相关主题的帖子: 语法 sum 冒泡 dmax 
2005-11-26 21:37
rove_pro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-11-24
得分:0 

起泡法?

2005-11-27 09:44
rove_pro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-11-24
得分:0 
j = k 本来我想通过j来控制外循环次数呢 循环体内有一个语句是判断如果数据已经有序则退出外循环

这样又可以减少时间复杂度
2005-11-27 21:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-35296-1-1.html




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

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