| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1199 人关注过本帖
标题:[求助]迫切求助!排序算法复杂性,还有一个函数题
只看楼主 加入收藏
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

你运行过没?


羊肉串 葡萄干 哈密瓜!!
2007-02-01 16:49
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
#include"stdio.h"
main()
{
int a[20],x,m,n,j;
printf("N:\n");
scanf("%d",&n);
printf("M:\n");
scanf("%d",&m);
for(x=0;x<n;x++)
a[x]=1;
a[0]=m-n+1;
for(x=0;x<n;x++)
printf("%d,",a[x]);
printf("\n");
while(1)
{
for(j=1;j<n;j++)
{
if(a[1]>=a[j]+2)
{
a[1]-=1;
a[j]+=1;
for(x=0;x<n;x++)
printf("%d,",a[x]);
printf("\n");
}
}
if(a[0]>=a[1]+2)
{
a[0]-=1;
a[1]+=1;
for(x=0;x<n;x++)
printf("%d,",a[x]);
printf("\n");
}
else
break;
}
for(j=0;j<n;j++)
if(a[0]>=a[j]+2)
{
a[0]-=1;
a[j]+=1;
for(x=0;x<n;x++)
printf("%d,",a[x]);
printf("\n");
}
}
你看看能理解不?

羊肉串 葡萄干 哈密瓜!!
2007-02-01 16:50
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用wekon在2007-2-1 16:33:28的发言:
这个对不?
int x;
int y;
int a[20];
void fun(int sum,int m,int n)
{
int i;
if(n<=0)
{
if(x==sum)
{
for(i=0;i<y;i++)
printf("%4d",a[i]);
printf("\n");
}
return;
}
for(i=m;i>0;i++)
{
a[y-n]=i;
fun(sum+a[y-n],i,n-1);
}
}

以后写程序要注意格式哦.
否则会看起来很麻烦,而且也没有条理,我帮你整理了一下.
这个函数中 sum参数代表什么含义?
int x;
int y;
int a[20];
void fun(int sum,int m,int n)
{
int i;
if(n<=0)
{
if(x==sum)
{
for(i=0;i<y;i++) printf("%4d",a[i]);
printf("\n");
}
return;
}
for(i=m;i>0;i++)
{
a[y-n]=i;
fun(sum+a[y-n],i,n-1);
}
}
我看了一下,你的思路还是正确的,因为这类程序用第归解决是比较容易且易读的


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-02-01 19:12
快速回复:[求助]迫切求助!排序算法复杂性,还有一个函数题
数据加载中...
 
   



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

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