1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
for ($i =0 ;$i <count($array );$i ++){
for ($j =count($array )-1 ;$j >$i ;$j --){
if ($array [$j ] > $array [$j -1 ]){
$temp = $array [$j ];
$array [$j ]=$array [$j -1 ];
$array [$j -1 ]=$temp ;
}
}
}
return $array ;
if ( ! is_array($array ) ){
return $array ;
}else if (count($array ) < 2 ){
return $array ;
}
$key = $array [0 ];
$leftArr =array ();
$rightArr =array ();
for ($i =1 ;$i <count($array );$i ++){
if ($array [$i ] >= $key ){
$leftArr []= $array [$i ];
}else {
$rightArr []=$array [$i ];
}
}
$leftArr =self ::quick_sort($leftArr );
$rightArr =self ::quick_sort($rightArr );
return array_merge($leftArr ,array ($key ),$rightArr ); }
$len =count($array );
for ($i =0 ;$i <$len ;$i ++){
$mix =$i ;
for ($j =$i +1 ;$j <$len ;$j ++){
if ($array [$mix ] > $array [$j ] ){
$mix = $j ;
}
}
if ($mix != $i ){
$temp = $array [$i ];
$array [$i ] =$array [$mix ];
$array [$mix ]=$temp ;
}
}
return $array ; }
function two_search ($array ,$low ,$high ,$val ) {
sort($array );
if ($low <=$high ){
$mid =intval( ($low +$high ) / 2 );
echo $mid .'<br/>' ;
if ($array [$mid ] == $val ){
return $mid ;
}else if ($val < $array [$mid ]){
return $this ->two_search($array ,$low ,$mid -1 ,$val );
}else {
return $this ->two_search($array ,$mid +1 ,$high ,$val );
}
}
return -1 ;
}
$n =count($array );
$array [$n ] = $k ;
for ($i =0 ; $i <$n ; $i ++){
if ($array [$i ]==$k ){
break ;
}
}
if ($i <$n ){
return $i ;
}else {
return -1 ;
} }
while ($low <= $high ){
$mid = intval( ($low +$high )/2 );
if ($array [$mid ] == $val ){
return $mid ;
}else if ( $val < $array [$mid ]){
$low =$mid - 1 ;
}else {
$high =$mid + 1 ;
}
}
return -1 ; }
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用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 ; } ```