PHP面試 基本演算法

2021-08-17 15:11:58 字數 1692 閱讀 7975

一、排序

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...