取出数组第一大和第二大元素

[php]  view plain  copy
  1. # 取出数组最大的元素  
  2. function getMax( $arr ){  
  3.       
  4.       
  5.     if( !is_array($arr) ){  
  6.         exit('参数必须是数组');  
  7.     }  
  8.   
  9.   
  10.     ifcount$arr ) == 0 ){  
  11.         exit('数组不能为空');  
  12.     }  
  13.   
  14.   
  15.     ifcount$arr ) ==  1 ){  
  16.   
  17.   
  18.         return array_shift$arr );  
  19.     }  
  20.       
  21.   
  22.   
  23.     $max = 0;  
  24.   
  25.   
  26.     foreach$arr as $key => $value ){  
  27.         if$max < $value ){  
  28.             $max = $value;  
  29.         }  
  30.     }  
  31.   
  32.   
  33.     return $max;  
  34. }  
  35.   
  36.   
  37. # 取出第二大的元素  
  38. function getTwoMax( $arr ){  
  39.       
  40.   
  41.   
  42.       
  43.     if( !is_array($arr) ){  
  44.         exit('参数必须是数组');  
  45.     }  
  46.   
  47.   
  48.     ifcount$arr ) == 0 ){  
  49.         exit('数组不能为空');  
  50.     }  
  51.   
  52.   
  53.     ifcount$arr ) ==  1 ){  
  54.         return   $arr ;  
  55.     }  
  56.       
  57.   
  58.   
  59.     $max = 0;  
  60.     $two = 0;  
  61.     foreach$arr as $key => $value ){  
  62.         if$max < $value ){  
  63.             $two = $max;  
  64.             $max = $value;  
  65.         }else{  
  66.             if$max != $value ){  
  67.                 if$two < $value ){  
  68.                     $two = $value;  
  69.                 }  
  70.             }  
  71.         }  
  72.     }  
  73.   
  74.   
  75.     return [ 'max' => $max , 'twoMax' => $two  ];  
  76. }  
  77.   
  78.   
  79.   
  80.   
  81. //$arr = [ ];  
  82. //$arr = array_pad( $arr , 81 , 0 );  
  83.   
  84.   
  85. $arr = [ 99,1000,1000 ,1,10,5,25,80,35,70,27,999,25,25 ];  
  86.   
  87.   
  88. # 桶排序  
  89. function bucketSort( $arr ){  
  90.       
  91.     $max = getMax( $arr );  
  92.           
  93.     $i = 0 ;  
  94.     $arr2 = [];  
  95.     while$i <= $max ) {  
  96.         $arr2[$i] = 0;  
  97.         $i++;  
  98.     }  
  99.   
  100.   
  101.     foreach$arr as $k => $v ){  
  102.         $arr2[$v]++;  
  103.     }  
  104.   
  105.   
  106.     # 正序  
  107.     /**foreach( $arr2 as $key => $value ){ 
  108.         while( $value ){ 
  109.             echo $key , ' , '; 
  110.             $value --; 
  111.         } 
  112.  
  113.  
  114.     }*/  
  115.   
  116.   
  117.     # 倒序  
  118.     while$max ){  
  119.         while$arr2[$max] ){  
  120.             echo $max , ' , ';  
  121.             $arr2[$max] --;  
  122.         }  
  123.         $max--;  
  124.     }  
  125. }  

猜你喜欢

转载自blog.csdn.net/echo_hello_world/article/details/80771219
今日推荐