南方排八字專業程式 php不用內建函數對陣列排序的兩個演算法程式碼
一朋友找工作遇到的試題,備註一下。
極有可能今後我也會遇到的。
問題:php不用內建函數對陣列排序,可能是降序或升序
第一種方法:傳說中的冒泡法
複製程式碼 程式碼如下:
function arraysort($data, $order = 'asc') {
//asc升序desc降序
$temp = array ();
$count = count ( $data );
if ($count return false; //傳入的資料不正確
if ($order == 'asc') {
for($i = 0; $i for($j = $count - 1; $j > $i; $j --) {
if ( $data [$j] //交換兩個資料的位置
$temp = $data [$j];
$data [$j] = $data [$j - 1];
$data [$j - 1] = $temp;
}
}
}
} else {
for($i = 0; $i for($j = $count - 1; $j > $i; $j --) {
if ($data [$j ] > $data [$j - 1]) {
$temp = $data [$j];
$data [$j] = $data [$j - 1];
$data [ $j - 1] = $temp;
}
}
}
}
return $data;
}
$data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
var_dump ( arraysort ( $data ) ); //升序
echo ('
');
var_dump ( arraysort ( $data ,'desc') );//降序
第二種方法:不知道取個什麼名字好,就叫插入法吧!囧
複製程式碼 程式碼如下:
function arraysort3($data, $order = 'asc') {
function arraysort3($data, $order = 'asc') {
//目前只做升序排列
$count = count ( $data );
for($i = 1; $i $temp = $data [ $i];
$j = $i - 1;
while ( $data [$j] > $temp ) {
$data [$j + 1] = $data [$j];
$data [$j] = $temp;
$j --;//為什麼要遞減:從高位逐位判斷
}
}
return $data;
}
$data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
var_dump ( arraysort3 ( $data ) ); //升序
以上就介紹了南方排八字專業程式 php不用內建函數對陣列排序的兩個演算法程式碼,包括了南方排八字專業程式的內容,希望對PHP教學有興趣的朋友有幫助。

熱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)