首頁 > 後端開發 > php教程 > PHP 冒泡排序 二分查找 順序查找 二維數組排序演算法函數的詳解

PHP 冒泡排序 二分查找 順序查找 二維數組排序演算法函數的詳解

高洛峰
發布: 2023-03-03 21:24:01
原創
1621 人瀏覽過

資料結構很重要,演算法+資料結構+文檔=程式
使用PHP描述冒泡排序演算法,物件可以是一個陣列

//冒泡排序(数组排序)
function bubble_sort($array) {
$count = count($array);
if ($count <= 0)
return false;
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j–){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array; }
登入後複製

使用PHP描述順序查找和二分查找(也稱為折半查找)演算法,順序查找必須考慮效率,物件可以是一個有序數組

//二分查找(数组里查找某个元素)
function bin_sch($array, $low, $high, $k){
if ($low <= $high){
$mid = intval(($low+$high)/2);
if ($array[$mid] == $k){
return $mid;
}elseif ($k < $array[$mid]){
return bin_sch($array, $low, $mid-1, $k);
}else{
return bin_sch($array, $mid+1, $high, $k);
}
}
return -1;
}
//顺序查找(数组里查找某个元素)
function seq_sch($array, $n, $k){
$array[$n] = $k;
for($i=0; $i<$n; $i++){
if($array[$i]==$k){
break;
}
}
if ($i<$n){
return $i;
}else{
return -1;
}
}
登入後複製

寫一個二維數組排序演算法函數,能夠具有通用性,可以呼叫php內建函數

//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}
登入後複製

更多PHP 冒泡排序二分查找順序來找出二維數組排序演算法函數的詳解相關文章請關注PHP中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
php的運算方法
來自於 1970-01-01 08:00:00
0
0
0
php數組拆分的演算法問題
來自於 1970-01-01 08:00:00
0
0
0
javascript - 前端面試的一道演算法題
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板