php 程序排列组合输出 4个数的数组取三个进行从小到大排列 不要递归方法不要全部循环方法
答案:2 悬赏:0
解决时间 2021-04-18 04:58
- 提问者网友:他的思颖
- 2021-04-17 13:37
曾经看见一个php程序就是 把 a b c d 取三个进行排列升序的排列而且不重复的很简单几个代码就实现了,不是多重循环代码,不是递归方法
最佳答案
- 二级知识专家网友:气场征服一切
- 2021-04-17 14:25
这几个系统函数供你参考,用法手册里都有
array_slice 从数组中取出一段
sort 对数组排序
array_unique 移除数组中重复的值
array_slice 从数组中取出一段
sort 对数组排序
array_unique 移除数组中重复的值
全部回答
- 1楼网友:陪我到地狱流浪
- 2021-04-17 14:52
不要急于看代码,你心理要知道全排列的思路,不注重思路是很多程序员易犯的错误。
全排列算法:
如果我求得固定第一位后的排列,那么全部排列就可以求出,固定第一位有10种可能,可以循环求得。
如果我求得固定第二位后的排列,固定第一位后的排列就可以求出,固定第二位有9种可能,可以循环求得。
。。。
如果我求得固定第10位后的排列,固定第9位后的排列就可以求出,固定第10位有1种可能,可以循环求得。
这很明显是递归的算法。
设perm(int k)为全部排列的集合,k为数字的位置
perm(int k){
for(j=k;j<=n;j++) //循环数组,确定k位的数值
{
t=a[k];a[k]=a[j];a[j]=t;
______③perm(k+1)______;//求得确定k位后的全部序列
t=a[k];______④a[k]=a[j]; a[j]=t______;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯