php基础算法小程序练习.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php基础算法小程序练习 1、首先来画个菱形玩玩,很多人学C时在书上都画过,咱们用PHP画下,画了一半。 思路:多少行for一次,然后在里面空格和星号for一次。 ?php for($i=0;$i=3;$i++){ ??? for($j=0;$j=3-$i;$j++){ ??????? echo nbsp;;?? ??? } ??? for($k=0;$k=2*$i;$k++){ ??????? echo *;??? ??? } ??? echo br/;??????? } 2、冒泡排序,C里基础算法,从小到大对一组数排序。 思路:这题从小到大,第一轮排最小,第二轮排第二小,第三轮排第三小,依次类推…… ?php $arr = array(3, 2, 1); $n = count($arr); //每循环一次,就跑一趟后面的排序 for($j=0; $j$n-1; $j++) { //对后面没排好的,循环查找出最大(最小)的,进行一趟排序 ??? for($i=$j; $i$n-1; $i++) { ??????? if($arr[$j] $arr[$i+1]) { ??????????? $t = $arr[$j]; ??????????? $arr[$j] = $arr[$i+1]; ??????????? $arr[$i+1] = $t; ??????? } ??? } } print_r($arr); 3、杨辉三角,用PHP写。 思路:每一行的第一位和最后一位是1,没有变化,中间是前排一位与左边一排的和,这种算法是用一个二维数组保存,另外有种算法用一维数组也可以实现,一行一行的输出,有兴趣去写着玩下。 1 1?? 1 1?? 2?? 1 1?? 3?? 3?? 1 1?? 4?? 6?? 4?? 1 1?? 5 10 10?? 5?? 1 ?php //每行的第一个和最后一个都为1,写了6行 for($i=0; $i6; $i++) { ??? $a[$i][0]=1; ??? $a[$i][$i]=1; } //出除了第一位和最后一位的值,保存在数组中 for($i=2; $i6; $i++) { ??? for($j=1; $j$i; $j++) { ????? $a[$i][$j] = $a[$i-1][$j-1]+$a[$i-1][$j]; ??? } } //打印 for($i=0; $i6; $i++){ ??? for($j=0; $j=$i; $j++) { ??? echo $a[$i][$j].nbsp;; ??? } ??? echo br/; } 4、在一组数中,要求插入一个数,按其原来顺序插入,维护原来排序方式。 思路:找到比要插入数大的那个位置,替换,然后把后面的数后移一位。 ?php $in = 2; $arr = array(1,1,1,3,5,7); $n = count($arr); //如果要插入的数已经最大,直接打印 if($arr[$n-1] $in) { ??? $arr[$n+1] = $in; print_r($arr); ??? } for($i=0; $i$n; $i++) { //找出要插入的位置 ??? if($arr[$i] = $in){ ??????? $t1= $arr[$i]; ??????? $arr[$i] = $in; //把后面的数据后移一位 ??????? for($j=$i+1; $j$n+1; $j++) { ??????????? $t2 = $arr[$j]; ??????????? $arr[$j] = $t1; ??????????? $t1 = $t2; ??? } //打印 ??? print_r($arr); ??? die; ??? } } 5、对一组数进行排序(快速排序算法)。 思路:通过一趟排序分成两部分,然后递归对这两部分排序,最后合并。 ?php function q($array) { ??? if (count($array) = 1) {return $array;} //以$key为界,分成两个子数组 ??? $key = $array[0]; ??? $l = array(); ??? $r = array(); //分别进行递归排序,然后合成一个数组 ??? for ($i=1; $icount($array); $i++) { ??? if ($array[$i] = $key) { $l[] = $array[$i]; } ??? else { $r[] = $array[$i]; } } ??? $l = q($l); ??? $r = q($r); ??? return array_merge

文档评论(0)

80092355km + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档