一、排序
1、冒泡
//冒泡
$arr = array(2,4,654,76,43,23,65,786,43,12);
function mysort($arr)
} }return $arr;
}var_dump(mysort($arr));
2、快排
//快排
$arr = array(2,4,654,76,43,23,65,786,43,12);
function mysort($arr)
$left = $right = array();
for($i = 1;$i $arr[0])else
} $left = mysort($left);
$right = mysort($right);
return array_merge($left,array($arr[0]),$right);
}var_dump(mysort($arr));
3、插入
//插入
//$arr = array(2,4,654,76,43,23,65,786,43,12);
function mysort($arr)else
} }return $arr;
}var_dump(mysort($arr));
4、二維陣列排序
//二維陣列根據指定字段排序(asc)
$arr = array(
0=>array('id'=>8,'name'=>'tom'),
1=>array('id'=>9,'name'=>'peter'),
2=>array('id'=>5,'name'=>'jack')
);function mysort($arr,$sort_key,$sort_order=sort_asc,$sort_type=sort_numeric)
array_multisort($arrs,$sort_order,$sort_type,$arr);
return $arr;
} }var_dump(mysort($arr,'id'));
二、查詢
1、順序(必須考慮效率)
//順序查詢
$arr = array(1,2,3,4,5,6,7,8,9,12,14,15,16);
function search($arr,$key)
} if($i < $n)else
}var_dump(search($arr,12));
2、二分
//二分查詢
$arr = array(1,2,3,4,5,6,7,8,9,12,14,15,16);
$low = 0;
$high = count($arr)-1;
$key = 12;
function search($arr,$low,$high,$key)elseif($arr[$mid] < $key)elseif($arr[$mid] > $key)
} return -1;
}var_dump(search($arr,$low,$high,$key));
PHP 高階演算法 面試
class test implements iterator public function current public function key public function next public function valid 測試 t new test foreach t as k v c...
php面試帶專案 PHP面試常用演算法 推薦
一 氣泡排序 基本思想 對需要排序的陣列從後往前 逆序 進行多遍的掃瞄,當發現相鄰的兩個數值的次序與排序要求的規則不一致時,就將這兩個數值進行交換。這樣比較小 大 的數值就將逐漸從後面向前面移動。氣泡排序 function mysort arr for i 0 i count arr i issor...
PHP中基本排序演算法
思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。實現 arr array 1,43,54,62,21,66,32,78,36,76,39 functio...