1. 程式人生 > >氣泡排序(優化版)和快速排序

氣泡排序(優化版)和快速排序

$arr = array( array('id' => 0, 'name' => '123833'), array('id' => 0, 'name' => 'aaa'), array('id' => 0, 'name' => 'albabaababa'), array('id' => 0, 'name' => '12356'), array('id' => 0, 'name' => '123abc') ); //自定義排序usort對陣列排序 function cmp($a,$b){ //$a,$b為陣列的值兩兩進行比較
$a = strlen($a['name']); $b = strlen($b['name']); if($a == $b) return 0; return $a<$b ? -1 : 1; //返回-1則交換順序 } usort($arr,"cmp"); //自定義排序,此處函式cmp需要加"",否則報錯,不能寫成cmp(). //氣泡排序法 for($i=0; $i<count($arr); $i++){ for($j=0; $j<count($arr)-1; $j++){ //內層迴圈個數少一個 if(strlen($arr[$j]) > strlen($arr[$j+1
])){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; } } } echo "<pre>"; print_r($arr); echo "</pre>";