用PHP實作常見四種排序演算法及實作原理
******插入排序(一維數組)
1,從第一個元素開始,該元素可以認為已經被排序
2,取出下一個元素,在已經排序的元素序列中從後向前掃描
3,如果該元素(已排序)大於新元素,將該元素移到下一位置
4,重複步驟3,直到找到已排序的元素小於或等於新元素的位置
5,將新元素插入到該位置中
6,重複步驟2
*/
function insert_sort($arr)
{
($i=1; $i
{
$tmp = $arr[$i];
$tmp = $arr[$i];
$ j] > $tmp && $j>=0)
{
$arr }
$arr[$j+1 ] = $tmp;
}
return $arr;
}
/*
******冒泡(一維數組)
/*
******冒泡(一維數組)
1,比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2,對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數字。
3,針對所有的元素重複以上的步驟,除了最後一個。
4,持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
*/
function bubble_sort($arr)
{
$len = count($arr);
for ($j=$len-1; $j>$i; $j--)
{
$tmp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
}
}
}
return $arr;
}
/*
******選擇排序(一維數組)
1,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,
2,然後再從剩餘未排序元素中繼續尋找最小元素,放到排序序列末尾。
3,以此類推,直到所有元素均排序完畢。
*/
function select_sort($arr){
$count = count($arr);
for($i=0; $i
for($j=$i+1; $j
{
(D
{
$k = $j;
($k != $i)
{
$tmp = $arr[$i] arr[$k];
$arr[$k] = $tmp;
/*
******快速排序(一維數組)
1,先隨機取一個中間值
2,把比中間值小的放到左側,比中間值大的放到右側,
3,然後再分別對左側和右側資料遞歸呼叫1,2步,合併左側、中間值、右側資料。
*/
function quick_sort($arr)
{
if (count($arr)
{
return $arr $left_arr = array();
$ right_arr = array();
for ($i=1; $i
{
$ arr [$ i];
其他$ right_arr [] = $ arr [$ i];
}
$ left_arr = quick_sort($ left_arr); ($left_arr, $key, $right_arr);
}
$a = array(123,321,432,341345,45234,53,493);
echo "
print_r(bubble_sort($a));
print_r(insert_sort($a));
print_r(quick_sort($a));
echo "r(quick_sort($a));
echo "";

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...
