算法
lz0426001
What do you want to do with this one wild and precious life?
One More Thing,Stay hungry,Stay foolish!
编程中最没用的东西是源代码,最有用的东西是算法和数据结构。
赢在布局!狼之野心,象之宽容,鹰之果断,狐之狡猾!
展开
-
杨辉三角
思路:每一行的第一位和最后一位是1,没有变化,中间是前排一位与左边一排的和,这种算法是用一个二维数组保存,另外有种算法用一维数组也可以实现,一行 一行的输出,有兴趣去写着玩下。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1//每行的第一个和最后一个都为1,写了6行 for($i=0; $i<转载 2014-11-25 16:49:58 · 333 阅读 · 0 评论 -
冒泡算法
冒泡算法,排序算法,由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序 $array = array(a,f,c,b,e,h,j,i,g); function maopao_fun($array){ if($len <= 1) { return $arr; } $count =转载 2014-11-25 10:57:10 · 311 阅读 · 0 评论 -
梵塔问题
function hanoi($n,$a,$b,$c){ if($n == 1){ move($a,1,$c); } else { hanoi($n-1,$a,$c,$b); move($a,$n,$c); move($n-1,$$b,$a,$c); }}function move($a转载 2014-11-25 17:15:36 · 1438 阅读 · 0 评论 -
递归算法
//递归算法//阶乘function f($n){ if($n == 1 || $n == 0){ return 1; }else{ return $n*f($n-1); }}echo f(5);转载 2014-11-25 17:11:30 · 355 阅读 · 0 评论 -
遍历目录
//遍历目录function iteral($path){ $filearr = array(); foreach (glob($path.'\*') as $file){ if(is_dir($file)){ $filearr = array_merge($filearr,iteral($file)); }else{转载 2014-11-25 17:10:36 · 297 阅读 · 0 评论 -
排列组合
/** * 排列组合 * 采用二进制方法进行组合的选择,如表示5选3时,只需有3位为1就可以了,所以可得到的组合是 01101 11100 00111 10011 01110等10种组合 * * @param 需要排列的数组 $arr * @param 最小个数 $min_size * @return 满足条件的新数组组合 */function pl($arr,$size=5) {转载 2014-11-25 17:10:13 · 418 阅读 · 0 评论 -
选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素, 顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法 function select_sort($arr){ $count = count($arr); for($i=0; $i<$count; $i++){ for($j=$i+1转载 2014-11-25 10:59:08 · 306 阅读 · 0 评论 -
希尔排序
希尔排序 (shell sort)— O(n log n)$data = array(6,13,21,99,18,2,25,33,19,84);$nums = count($data);dump( $data );ShellSort($data,$nums);dump( $data );function ShellSort(& $arr,$n ){for( $increme转载 2014-11-25 16:58:08 · 334 阅读 · 0 评论 -
合并多个数组,不用array_merge()
合并多个数组,不用array_merge()。思路:遍历每个数组,重新组成一个新数组。function t(){ $c = func_num_args()-1; $a = func_get_args(); //print_r($a); for($i=0; $i<=$c; $i++){ if(is_array($a[$i])){转载 2014-11-25 16:53:51 · 2264 阅读 · 0 评论 -
二分查找算法
在一个数组查找你所需元素(二分查找算法)。思路:以数组中某个值为界,再递归进行查找,直到结束。function find($array, $low, $high, $k){ if ($low <= $high){ $mid = intval(($low+$high)/2); if ($array[$mid] == $k){ return $m转载 2014-11-25 16:53:13 · 285 阅读 · 0 评论 -
画个菱形
思路:多少行for一次,然后在里面空格和星号for一次。for($i=0;$i<=3;$i++){ echo str_repeat(" ",3-$i); echo str_repeat("*",$i*2+1); echo ''; }转载 2014-11-25 16:48:25 · 451 阅读 · 0 评论 -
斐波那契数列
function show($n){ if($n<2){ return $n; }else{ return show($n-1)+show($n-2); }}转载 2014-11-25 17:27:17 · 294 阅读 · 0 评论 -
输出三角形
for($i=0;$i<6;$i++){ for($j=0;$j<6-$i;$j++){ echo "*"; } echo "";}for($i=0;$i<6;$i++){ for($j=0;$j<6-$i;$j++){ echo " "; } for($k=0;$k<=$i;$k++){ echo转载 2014-11-25 17:25:30 · 434 阅读 · 0 评论 -
PHP常用一维数组排序
<?php/*【插 入排序(一维数组)】【基本思想】:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素 全部插入完为止。【示例】:[初始关键字] [49] 38 65 97 76 13 27 49J=2(38) [38 49] 65 97 76 13 27 49J=3(65) [38 49 65] 97 76 13 27 49J转载 2014-11-25 17:09:05 · 1281 阅读 · 0 评论 -
有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛
有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛。function t($n) { static $num = 1 for($j=1; $j<=$n; $j++){ if($j>=4 && $j<15) {$num++;t($n-$j);}转载 2014-11-25 16:55:12 · 2915 阅读 · 0 评论 -
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。 由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列。 function quickSor转载 2014-11-25 10:57:58 · 308 阅读 · 0 评论 -
插入排序
从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 将新元素插入到下一位置中 重复步骤2 function insert_sort($arr){ $count = co转载 2014-11-25 10:59:56 · 340 阅读 · 0 评论 -
PHP常用排序算法 冒泡排序 快速排序 插入排序
冒泡排序:两两交换数值,最小的值在最左边,就如最轻的气泡在最上边。对整列数两两交换一次,最小的数在最左边,每次都能得一个在剩下的数中的最小 的数,“冒”出来的数组成一个有序区间,剩下的值组成一无序区间,且有序区间中每一元素值都比无序区间的小。快速排序:基准数,左右二个数组,递归调用,合并。插入排序:排序区间分成二部分,左边有序,右边无序,从右区间取第一个元素插入左区间,若此元素比左边区间最转载 2014-11-25 17:04:55 · 378 阅读 · 0 评论 -
水仙花数
for($i=100;$i<1000;$i++){ $a=intval($i/100); $b=intval($i/10)%10; $c=$i%10; if(pow($a,3)+pow($b,3)+pow($c,3)==$i) { echo $i.""; }}转载 2014-11-25 17:23:21 · 462 阅读 · 0 评论