首页 > 编程知识 正文

php设计模式面试题,最新php面试题

时间:2023-05-06 07:04:07 阅读:169887 作者:1825

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算法问题及解答】相关文章:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。