一些算法
//木桶排序
/* 首先產生兩個數字,最大值和最小值,然後根據兩個數字的值決定要創建多少個桶裝數據,
每個 桶裝數據按key編好號碼,按數組內的數字指定桶的出現次數。
然後輸出所有指定桶。木桶算法是不穩定算法。
*/
$count = array(6,10,4,12,4,90,33);
function mutong($max,$array)
{
//填充木桶
$arr = array_fill(0, $max, 0);//函數用給定的鍵值填充數組
//開始標示木桶
for($i = 0; $i<=count($array)-1 ; $i++){
//var_dump($array[$i]);
isset($arr[$array[$i]])? $arr[$array[$i]]++ : "";
}
$mutomg = array();
//開始從木桶中拿出數據
for($i = 0; $i<= $max ; $i++){
$arr[$i] = isset($arr[$i]) ? $arr[$i] : "";
for($j = 1; $j <= $arr[$i]; $j++){ //這一行主要用來控制輸出多個數字
$mutong[] = $i;
}
}
return $mutong;
}
$max = max($count);//90
print_r(mutong($max,$count));
//冒泡算法
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
function getpao($arr)
{
$len=count($arr);
//設置一個空數組 用來接收冒出來的泡
//該層循環控制 需要冒泡的輪數
for($i=1;$i<$len;$i++){ //該層循環用來控制每輪 冒出一個數 需要比較的次數
for($k=0;$k<$len-$i;$k++){
if($arr[$k]>$arr[$k+1]){
$tmp=$arr[$k+1];
$arr[$k+1]=$arr[$k];
$arr[$k]=$tmp;
}
}
}
return $arr;
}
var_dump(getpao($arr));
一些算法