📄 subject_55889.htm
字号:
<p>
序号:55889 发表者:estelle 发表日期:2003-10-13 20:45:55
<br>主题:请教关于4*3*2*1排列的问题
<br>内容:我有一个一维数组P[4],这四个数有4*3*2*1种排列,我想知道用什么样的方法才能一一列举出这些排列。谢谢各位大虾!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:hurtmanzc 回复日期:2003-10-13 22:03:15
<br>内容:int p[5],i1,i2,i3,i4;<BR>p[0]=0;//第一个空出,这样只为好读一点<BR>p[1]=1;<BR>p[2]=2;<BR>p[3]=3;<BR>p[4]=4;<BR>for(i1=1;i1<=4;i1++)<BR> for(i2=1;i2<=4;i2++)<BR> for(i3=1;i3<=4;i3++)<BR> for(i4=1;i4<=4;i4++)<BR> {<BR> if(i1!=i2&&i1!=i3&&i1!=i4&&i2!=i3&&i2!=i4&&i3!=i4)<BR> printf("%d->%d->%d->%d\n",p[i1],p[i2],p[i3],p[i4])<BR> }<BR><BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:独行侠1 回复日期:2003-10-13 22:33:07
<br>内容:这个算法无谓做了许多没用的循环。<BR>如果一维数组的个数超大,则次算法的效率极低。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:adam&amp;ancy 回复日期:2003-10-14 04:08:29
<br>内容:那你自己做个来看看。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:estelle 回复日期:2003-10-14 08:52:17
<br>内容:谢谢hurtmanzc的帮助!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:独行侠1 回复日期:2003-10-14 21:10:01
<br>内容:这个程序的循环次数少一些,且每次循环都是比不可少的:<BR><BR>int p[4]={1,2,3,4};<BR>for(int i=0;i<=3;i++)<BR> for(int j=(i+1)%4;j!=i;j=(j+1)%4)<BR> for(int m=(j+1)%4;m!=j;m=(m+1)%4)<BR> {<BR> if(m==i) continue;<BR> for(int n=(m+1)%4;n!=m;n=(n+1)%4)<BR> {<BR> if(n==i||n==j) continue;<BR> cout<<p[i]<<p[j]<<p[m]<<p[n]<<endl;<BR> } <BR> }
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hurtmanzc 回复日期:2003-10-15 20:07:50
<br>内容:我所给出的算法的确效率不高,我只是提供一个思路,要提高效率也不难,只要在每层循环进行判断,当该层循环的次数等于上层循环次数时,用continue跳出,这样循环次数会大大减少。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -