sorting array value without using built in php like sort() etc

后端 未结 20 1487
栀梦
栀梦 2020-12-09 07:10


        
20条回答
  •  隐瞒了意图╮
    2020-12-09 07:45

    Here is the best way of sorting. Also check response time.

     function findMaxVal($arr)
     {
      $maxNum = $arr[0];
    
      foreach($arr as $arval)
      {
       $maxNum = $maxNum < $arval ? $arval : $maxNum;
      }
    
      return $maxNum;
     }
    
     function sortArrFun($arr)
     {
      $maxVal = findMaxVal($arr);
      $countArr = array();
    
      for($i = 0; $i <= $maxVal; $i++)
      {
       $countArr[$i] = 0;
      } 
    
      for($i = 0; $i < count($arr); $i++)
      {
       $countArr[$arr[$i]]++;
      }
    
      $order = array();
      for($i = 0; $i < count($countArr); $i++)
      {
       for($j = 0; $j < $countArr[$i]; $j++)
       {
        $order[] = $i;
       }
      }
    
      return $order;
     }
    
     $arrr = [1,22,333,45,5,8888,9999,0,9,7,8]
     print_r(sortArrFun($arrr1));
    

提交回复
热议问题