# 取出数组最大的元素
function getMax( $arr ){
if( !is_array($arr) ){
exit('参数必须是数组');
}
if( count( $arr ) == 0 ){
exit('数组不能为空');
}
if( count( $arr ) == 1 ){
return array_shift( $arr );
}
$max = 0;
foreach( $arr as $key => $value ){
if( $max < $value ){
$max = $value;
}
}
return $max;
}
# 取出第二大的元素
function getTwoMax( $arr ){
if( !is_array($arr) ){
exit('参数必须是数组');
}
if( count( $arr ) == 0 ){
exit('数组不能为空');
}
if( count( $arr ) == 1 ){
return $arr ;
}
$max = 0;
$two = 0;
foreach( $arr as $key => $value ){
if( $max < $value ){
$two = $max;
$max = $value;
}else{
if( $max != $value ){
if( $two < $value ){
$two = $value;
}
}
}
}
return [ 'max' => $max , 'twoMax' => $two ];
}
//$arr = [ ];
//$arr = array_pad( $arr , 81 , 0 );
$arr = [ 99,1000,1000 ,1,10,5,25,80,35,70,27,999,25,25 ];
# 桶排序
function bucketSort( $arr ){
$max = getMax( $arr );
$i = 0 ;
$arr2 = [];
while( $i <= $max ) {
$arr2[$i] = 0;
$i++;
}
foreach( $arr as $k => $v ){
$arr2[$v]++;
}
# 正序
/**foreach( $arr2 as $key => $value ){
while( $value ){
echo $key , ' , ';
$value --;
}
}*/
# 倒序
while( $max ){
while( $arr2[$max] ){
echo $max , ' , ';
$arr2[$max] --;
}
$max--;
}
}
常见算法
最新推荐文章于 2023-04-16 18:16:25 发布