社区
C++ Builder
帖子详情
排列组合的C算法实现
h13bk
2003-09-29 06:05:55
表达很简单:
设b为排列,c为组合
b(2,1,3)表示顺序取2,1,3,c(1,2,3)表示不论顺序将1,2,3取出来
那么复杂一点:
c(c(1,5),b(2,3),c(4,6))
b(b(1,c(2,3)),b(4,c(5,6,7)))之类的,如果入口参数就是这个字符串,我自己的代码总觉得效率不好,不知各位有没有效率高一点的C算法实现?(分不够可再加)
...全文
254
10
打赏
收藏
排列组合的C算法实现
表达很简单: 设b为排列,c为组合 b(2,1,3)表示顺序取2,1,3,c(1,2,3)表示不论顺序将1,2,3取出来 那么复杂一点: c(c(1,5),b(2,3),c(4,6)) b(b(1,c(2,3)),b(4,c(5,6,7)))之类的,如果入口参数就是这个字符串,我自己的代码总觉得效率不好,不知各位有没有效率高一点的C算法实现?(分不够可再加)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangjuliang
2003-09-30
打赏
举报
回复
To jiangchun_xn(如果能再遇到你)
我不是说了嘛,是csdn里的嘛!
yhz
2003-09-30
打赏
举报
回复
你这个要求有点像解释执行代码。
建议你去看看编译原理这方面的资料。
尤其是文法、词法、语法的分析等等这方面的资料。
大体的思路是:
首先要对输入的字符串进行文法分析,得到一个中间代码结构,
然后再进行你所需要的操作。
至于你说到的效率问题,很可能是在文法,词法,语法分析阶段,
算法没有很好的优化造成的。具体的算法优化可能还要参考一下相关的资料。
jiangchun_xn
2003-09-30
打赏
举报
回复
huangjuliang():这段程序我怎么这么熟悉呢??
我不懂电脑
2003-09-30
打赏
举报
回复
水平考试的书上有例子
yesry
2003-09-30
打赏
举报
回复
排列比较容易实现。组合比较困难。
还有速度的问题。
yumibangzi
2003-09-30
打赏
举报
回复
顶
h13bk
2003-09-30
打赏
举报
回复
不好意思,看来你误会我的意思了,你的程序是把所有可能的排列显示出来,但现在的问题是把一个排列组合的表达式解析出来
jeremylwz
2003-09-29
打赏
举报
回复
好
huangjuliang
2003-09-29
打赏
举报
回复
接分了!
huangjuliang
2003-09-29
打赏
举报
回复
void m(int s[],int depth,int maxvalue,int maxlength)
{
int i;
bool found;
if(depth==maxlength)
{
Form1->Label1->Caption="";
for(i=0;i<maxlength;i++)
Form1->Label1->Caption=Form1->Label1->Caption+s[i];
ShowMessage("一个结果");
return;
}
for(s[depth]=0;s[depth]<maxvalue;s[depth]++)
{
found=false;
for(i=0;i<depth;i++)
if(s[i]==s[depth])
{
found=true;
break;
}
if(!found)m(s,depth+1,maxvalue,maxlength);
}
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int *s;
int n;
n=5;
s=new int[n];//多少个
memset(s,0,sizeof(int)* n);
m(s,0,5,5);
delete s;
}
你看怎么样?
这些csdn里都有的!
基于c语言
排列组合
算法
该文档对
排列组合
问题的
算法
设计问题进行一系列讲述
C#
实现
排列组合
算法
完整实例
其实排列
实现
了,组合也就
实现
了,组合C(N,R)就是P(N,R)/P(R,R) ,
实现
这一功能比较简单的是递归
算法
,但考虑到递归的性能,下面采用了2种非递归的方法,具体代码如下 using System; using System.Collections....
基于c语言的
排列组合
算法
本程序是
排列组合
算法
的c语言表示,使用递归
实现
qtc++
排列组合
实现
qt c++
排列组合
实现
没分的联系本人索要
java
排列组合
算法
排列组合
排列 组合 java
排列组合
算法
排列组合
算法
C++ Builder
13,824
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章