PHP之算法偶遇?感

php中文网
发布: 2016-06-23 14:38:01
原创
934人浏览过

    php真的很棒,很多函?把我?想要的功能都????了,是?目快速??的首?.???,在bs程序??方面我??最好的???言是php和jsp,我之前曾??一段??的java,??很棒完全的oop,但是它太"?毛"了,?然他的??有很多,但是想要??快速???乎是不大可能的,太多的?西需要遵循,而在?方面php就好的太多了,但是也正因?如此??多的phper?忽略了算法的重要性,好了言?正?我?今天就???一?算法.

    昨天我在??一??目的?候遇到了一???,就是???合的部份,我曾研究??似的代?,??人家循?了7?,看得我眼冒金星,至於效率就更甭提了,於是我就想自己?一?函???理?部份,首先要效率高,其次是要能?足我的需求,整了半天愣是?有整出?,下?是我?在CSDN上的一篇求救文:

请帮忙写一个函数,用来重新组合字符串,大概如下:
    
/**
参数:
    $arr:需要被重新?合的原始Array
    $len:组合后的长度
/**/
Function getArray($arr,$len){
    //请帮忙写
}
$arr=Array('A','B','C');
print_r(getArray($arr,2));
 
$arr=Array('A','B','C','D','E','F');
print_r(getArray($arr,4));


要求如下:
    第1种: A,B,C
    期望能够得到的组合是: AB,AC,BC
    
    第2种: A,B,C,D(可通过参数控制结果长度,如长度为2或3)
    期望能够得到的组合是: AB,AC,AD,BC,BD,CD或ABC,BCD,ACD,ABD
              
    第3种: A,B,C,D,E(可通过参数控制结果长度,如长度为2;3或4)
    期望能够得到的组合是: AB,AC,AD,AE,BC,BD,BE,CD,CE,DE或ABC,BCD,CDE,ABD,ABE,ACD,ACE,BDE,BCE,ADE或ABCD,BCDE,ABCE,ACDE,ABDE
 
    第四种:A,B,C,D,E,F(可通过参数控制结果长度,如长度为2;3;4或5)
    期望能够得到的组合是: 可根据上边的组合推演出来,在此不再例举

    上?的要求貌似很??,但是真正?我?始?的?候才??竟然一???都?有,我曾?想?用??等做法但是想?想去都?得不可行,放狗搜了半天也找不到?似的做法,只??有人用C?言??一?函?,但是?我把C?言代?改成PHP?行的?候和?期的效果差很大.最後??法只好在CSDN花?了??的200??分?高手?解?,俗?所的好"重?之下有勇夫",哈哈?句?果真一?都不假,很快PHP版的斑竹"xuzuning"就?了我三?答案,汗!!!最後通?十?次的循????中了一?最佳解?方案,代?如下:

	/**		重新?合Array,例如(2x3;3x3;3x4)		返回:			重?後的Array		??:			$arr:要重?的Array			$len:??Array?合到一起		用法:			$arr=Array('A1','B2','C3','D4','E5','f');			$x3=Fun::CombiArray($arr,3);	/**/	Public Static Function combiArray($arr,$len){		$cr = Range(0,$len-1);		$k = False;		$total = Count($arr);		While($cr[0] < $total-($len-1)) {			$t = Array();			For($i=0;$i<$len;$i++){$t[]=$arr[$cr[$i]];}			$r[] = $t;			For($i=$len-1;$i>=0;$i--) {				$cr[$i]++;				For($j=$i;$j<$len-1;$j++){$cr[$j+1] = $cr[$j]+1;}				IF($cr[$i] < $total-($len-$i-1)){Break;}			}		}		Return $r;	}
登录后复制

 很棒的算法,看了老半天才看明白,比起某人?的那7?循?不知道效率提升了多少倍.

算家云
算家云

高效、便捷的人工智能算力服务平台

算家云 37
查看详情 算家云

立即学习PHP免费学习笔记(深入)”;

PHP成就了快速??,?也?程序??笨了,看?得??一下算法了,在算法方面有?有啥比?好的?啊?大家可否推??我?本?

..

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号