- # 取出数组最大的元素
- 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--;
- }
- }
取出数组第一大和第二大元素
最新推荐文章于 2024-04-14 11:26:42 发布