一:用遞歸算法打印99乘法表


1 <?php 2 header('Content-Type:text/html; charset=utf-8'); 3 echo "<h2>用遞歸算法打印99乘法表</h2>"; 4 function cf99($num=9){ 5 for($i=1; $i<=$num; ++$i){ 6 echo "$i*$num=".$i*$num." "; 7 } 8 echo "<br/>"; 9 $num++; //遞歸點(diǎn):什么時(shí)候再次調(diào)用當(dāng)前函數(shù)10 if($num <= 9){ //遞歸出口:什么時(shí)候不再調(diào)用當(dāng)前函數(shù)11 cf99($num);12 }13 }14 cf99(1);View Code二:斐波那契數(shù)列
斐波那契數(shù)列指的是這樣一個(gè)數(shù)列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...從第二項(xiàng)開始每一項(xiàng)都等于前兩項(xiàng)的和,注意項(xiàng)是從0開始的

1 <?php 2 header('Content-Type:text/html; charset=utf-8'); 3 function f($n){ 4 if($n == 0){ 5 return 0; 6 }elseif($n == 1){ 7 return 1; 8 } 9 return f($n-1) + f($n-2);10 }11 echo f(0);View Code三:利用遞歸對數(shù)組進(jìn)行快速排序

1 <?php 2 header('Content-Type:text/html; charset=utf-8'); 3 $array = array(12,9,4,18,7,2,38,34,8,3,41); 4 //遞歸點(diǎn):什么時(shí)候繼續(xù)調(diào)用當(dāng)前方法 5 //遞歸出口:什么時(shí)候停止調(diào)用當(dāng)前方法 6 function quickSort($arr){ 7 //遞歸出口 8 $len = count($arr); 9 if($len <= 1){10 return $arr;11 }12 //分割兩個(gè)數(shù)組,創(chuàng)建兩個(gè)空數(shù)組分別放分割出來大的和小的數(shù)13 $big = $small = array();14 //從數(shù)組中取出第一個(gè)元素作為參考值15 $tag = $arr[0];16 //循環(huán)完數(shù)組大的放入$big,小的放入$small17 for($i=1; $i<$len; $i++){ //注意$i等于1,因?yàn)閺牡诙€(gè)數(shù)開始和設(shè)定的第一個(gè)比較18 if($arr[$i] > $tag){19 $big[] = $arr[$i];20 }else{21 $small[] = $arr[$i];22 }23 }24 //遞歸點(diǎn),分割到最后一個(gè)就接受返回值25 $big_sort = quickSort($big);26 $small_sort = quickSort($small);27 //再進(jìn)行合并28 return array_merge($small_sort,array($tag),$big_sort);29 }30 $result = quickSort($array);31 var_dump($result);View Code新聞熱點(diǎn)
疑難解答
圖片精選