演算法之php版

2022-03-10 22:34:05 字數 1636 閱讀 6446

列出可能會用到的幾個演算法

<?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...