列出可能會用到的幾個演算法
<?php
/*** @desc 列印出乙個菱形
*/function diamond($n)
for($k=0; $k<=2*$i; $k++)
echo "";}
for($i=$n; $i>=0; $i--)
for($j=0; $j<=$n-$i; $j++)
for($k=0; $k<=2*$i; $k++)
echo "";}
}diamond(3);
/*** @desc 氣泡排序
*/function bubblesort($arr) }
}return $arr;
}$arr = array(9,2,7,4,8,5,6);
bubblesort($arr);
/*** @desc 楊輝三角
*/function yanghui($n)
//第一行、第二行已經求出,所以從第三行開始
for($i=2; $i<$n; $i++)
}//列印結果
//第一行、第二行已經求出,所以從第三行開始
for($i=0; $i<$n; $i++)
echo "
" ;}
}yanghui(10);
/*** @desc 順序插入 在一組數中,要求插入乙個數,按其原來順序插入,維護原來排序方式。
*/function orderinsert($arr, $int)
for($i=0; $i<$len; $i++)
return $arr;}}
}$arr = array(1,3,6,8,9);
$int = 5;
print_r(orderinsert($arr, $int));
/*** @desc 二分查詢
*/function binarysearch($arr, $need, $low, $height)
elseif($arr[$mid] < $need)
else}}
$arr = range(1, 1234);
$need = 999;
$keys = array_keys($arr);
$low = min($arr);
$high = max($arr);
$i=0;
$result = binarysearch($arr, $need, $low, $high);
echo "";
var_dump($result);
//合併陣列
function merge()} }
else
}return $arr;
}echo "";
var_dump(merge(range(1,8), range(6,10), range(10,15)));
var_dump(array_merge(range(1,8), range(6,10), range(10,15)));
//牛年求牛:有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛
function t($n)
if($i==20)
}return $num;
}
PHP版常用演算法
最近準備面試的資料,順便整理一下以前的基本演算法,寫個demo記錄一下 冒泡 冒泡 逐行對比,滿足條件則交換 function bubblesort arrdata,sort desc if issorted break return arrdata 快速排序 快速排序 選取乙個標準,和其他資料對比...
排序演算法之PHP版快速排序 氣泡排序
一 快速排序 1.簡介 快速排序是由東尼霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 n log n 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 n log n 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上...
演算法之 雪花演算法 php
分布式生成自增id namespace class snowflake 賦值 this workid workid 生成乙個id public function nextid 生成唯一序列 if lasttimestamp timestamp else self lasttimestamp time...