PHP算法问题及答案
php面试.时部分面试官考了一些算法知识,下面小编整理了php算法的问题和答案,希望对大家有所帮助!
1 .用PHP编写气泡排序和快速排序算法。 对象可以是数组
//气泡排序(数组排序) )。
函数bubble _ sort ($ array ) {
$count=count($array;
if ($count=0)返回假;
for($I=0; $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;
}
}
}
返回$阵列;
}
//快速排序(数组排序)。
函数快速_ sort ($ array ) {
if(count ) $array )=1)返回$array;
$key=$array[0];
$left_arr=array (;
$right_arr=array (;
for($I=1; $i; $i ) {
if($Array ) $I )=$key ) {
$left_arr[]=$array[$i];
}else{
$right_arr[]=$array[$i];
}
}
$left_arr=quick_sort($left_arr );
$ right _ arr=quick _ sort ($ right _ arr );
returnarray_merge($left_arr,array ) $key ),$right_arr );
}
//2 .使用PHP描述逐次搜索和二分搜索(也称为折返搜索)算法。 逐次搜索必须考虑效率,对象可以是有序的数组
//二分搜索(查找数组中的某个元素) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
函数bin _ sch ($ array,$low,$high,$k ) {
if($low=$high ) {
$mid=intval () $low$high )/2 );
if($Array ) $mid )==$k ) {
返回$ mid;
} else if ($ k $ array ($ mid ) ) )。
returnbin_sch($Array,$low,$mid-1,$k );
}else{
returnbin_sch($Array,$mid 1,$high,$k );
}
}
返回- 1;
}
//按顺序查找(查找数组中的某个元素) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
函数seq _ sch ($ array,$n,$k ) {
$array[$n]=$k;
for($I=0; $i
if($Array ) $I )==$k
黑;
}
}
if($I
返回$ I;
}else{
返回- 1;
}
}
3 .编写通用性的二维数组排序算法函数。 可以调用php内置函数的二维数组排序。 $arr是数据,$keys是排序关键字,$order是排序规则,1是升序,0是降序
functionarray_sort($arr,$keys,$order=0) ) )。
if (! is_array($arr ) }
返回假;
}
$keysvalue=array (;
Foreach($arras$key=$val ) {
$keysvalue[$key]=$val[$keys];
}
if($order==0
asort($keysvalue;
}else {
arsort($keysvalue;
}
reset($keysvalue;
Foreach($keysvalueas$key=$vals ) {
$keysort[$key]=$key;
}
$new_array=array (;
Foreach($keysortas$key=$val ) {
$new_array[$key]=$arr[$val];
}
return $new_array;
}
【PHP算法问题及解答】相关文章: