这些都是真实的IT公司招聘PHP程序员的面试题,这些都是简单的基本算法。包括:冒泡算法、快速排序算法、二分查找算法、顺序算法。
冒泡排序,对象可以是一个数组
01 |
function bubble_sort($array){ |
02 |
$count = count($array);
|
06 |
for ($i=0; $i<$count; $i++){
|
07 |
for ($j=$count-1; $j>$i; $j--){
|
08 |
if ($array[$j] < $array[$j-1]){
|
10 |
$array[$j] = $array[$j-1];
|
快速排序,对象可以是一个数组
01 |
function quick_sort($array) { |
02 |
if (count($array) <= 1){
|
08 |
for ($i=1; $i<count($array); $i++){
|
09 |
if ($array[$i] <= $key){
|
10 |
$left_arr[] = $array[$i];
|
12 |
$right_arr[] = $array[$i];
|
15 |
$left_arr = quick_sort($left_arr);
|
16 |
$right_arr = quick_sort($right_arr);
|
17 |
return array_merge($left_arr, array($key), $right_arr);
|
二分查找
02 |
function bin_sch($array, $low, $high, $k){ |
04 |
$mid = intval(($low+$high)/2);
|
05 |
if ($array[$mid] == $k){
|
07 |
}elseif ($k < $array[$mid]){
|
08 |
return bin_sch($array, $low, $mid-1, $k);
|
10 |
return bin_sch($array, $mid+1, $high, $k);
|
顺序查找
02 |
function seq_sch($array, $n, $k){ |
04 |
for ($i=0; $i<$n; $i++){
|
写一个二维数组排序算法函数,可以调用php内置函数,能够具有通用性
01 |
function array_sort($arr, $keys, $order=0) { |
02 |
if (!is_array($arr)) {
|
06 |
foreach ($arr as $key => $val) {
|
07 |
$keysvalue[$key] = $val[$keys];
|
15 |
foreach ($keysvalue as $key => $vals) {
|
16 |
$keysort[$key] = $key;
|
19 |
foreach ($keysort as $key => $val) {
|
20 |
$new_array[$key] = $arr[$val];
|
原文地址:http://www.springload.cn/springload/detail/326
|
请发表评论