functionm_order($arr)}}
return$arr;
}var_dump(m_order([1, 3, 2, 5, 7, 9]));die;
優化氣泡排序
function m_order($arr)
for ($h = 0; $h < $count - 1; $h++)
}if ($flag == 0)
}return $arr;
}var_dump(m_order([2, 3, 4, 5, 1, 7, 9]));die;
/***
遍歷目錄
*@param$dir
*@returnarray
*/functionb_list($dir)
}return$listarr;
}var_dump(b_list('e:/shen'));die;
classmyqueue
public functionpop()
public functionshift()
public functionunshift($params)
public functiongetqueue()
}$obj =newmyqueue();
$obj->push(1);
$obj->push(2);
$obj->push(3);
$obj->push(4);
$obj->pop();
$obj->shift();
$obj->unshift(7);
$obj->unshift(8);
$obj->unshift(9);
var_dump($obj->getqueue());die;
/***
數猴子找大王
*@param$n
總數*@param$m
踢數*@returnmixed
*/functionmonkey($n, $m)
}return$arr[0];
}echomonkey(10, 5);die;
/***
斐波那契數列
*@param$n
*@returnmixed
*/functionfbnq($n)
return$arr;
}var_dump(array_values(fbnq(10)));die;
/***
自定義二維陣列按照某個鍵值排序
*@param$arr
*@param$key
*@param$order
*@returnarray
*/functionmyorder($arr, $key, $order)
if(strcasecmp($order,'asc') == 0)
if(strcasecmp($order,'desc') == 0)
$newarr = ;
foreach($keyarras$k=>$v)
return$newarr;
}$arr = [
['name'=>'shen25',
'age'=>'25',],[
'name'=>'shen27',
'age'=>'27',],[
'name'=>'shen24',
'age'=>'24',],[
'name'=>'shen26',
'age'=>'26',],[
'name'=>'shen30',
'age'=>'30',
],];
var_dump(myorder($arr,'age','desc'));die;
/***
順序查詢
*@param$arr
*@param$params
*@returnint|string
*/functionfindparams($arr, $params)
}return-1;
}$arr = [1, 3, 2, 5, 123, 4, 54, 2];
var_dump(findparams($arr, 123));die;
/***
二分查詢
$arr
需排好序
*@param$arr
*@param$start
*@param$end
*@param$params
*@returnmixed
*/functionerfen($arr, $start, $end, $params)elseif($arr[$key] < $params)else
return false;
}$b ='/a/b/c/d/e.php';
$a ='/a/b/f/g/j/h.php';
functiondiff($a, $b)
}//echo $k;die;
//var_dump(array_fill(0, $bcount-$k, '..'));die;
$result = array_merge(array_fill(1, $bcount-$k-1,'..'), array_slice($aarr,$k));
returnimplode('/', $result);
}var_dump(diff($a, $b));die;
/**楊輝三角
*@param$n
*/functionyhsj($n)else
echo
" ";
}echo
"";}}
var_dump(yhsj(5));die;
附加:建立鍊錶 以及翻轉鍊錶
class node
function createlist()
return $list;
}function reservelist($list)
$newlist = new node();
$newlist->next = $new;
return $newlist;
}print_r(createlist());
var_dump(reservelist(createlist()));
PHP面試經典演算法題整理
最近在準備php面試。看了幾個經典的演算法,記錄一下 約瑟夫環 線性代數 function king n m return p 1 約瑟夫環 佇列 function king n m else i return array shift arr 有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到...
面試10大演算法題彙總 字串和陣列3
5.求兩個有序陣列的中位數 有兩個有序陣列a和b,其大小分別為m和n,求兩個有序數的中間值 若m n為偶數,則求兩個中間數的平均值。例 a b output 5.0 a b output 3.0 要求時間複雜度為o log m n 由於對時間複雜度有要求,因此不能直接遍歷,可考慮分治法 假設陣列a的...
10大基本演算法
1.求值法基本是三個步驟 輸入 計算 輸出 2.遞推法根據1 n的規律 求解第n個 3.遞迴法將大問題縮小為小問題,按照某種形式,使大小問題都符合這種求解方法。最終由小問題的求解推出大問題的求解 4.列舉法在一定區域內列舉出符合問題的全部解 5.模擬法根據實際問題變換成計算問題 6.分治法將問題拆分...