排序-數組-N種方法

 

//實例  [5,2,3,1,23413,333,2323,123412341,12323]

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer[]
     */

     //快速排序
     function sortArray($nums){
         $len = count($nums);
         if($len <= 1){
             return $nums;
         }

         $baseNum = $nums[0];
         $leftArr = array();
         $rightArr = array();

        for($i = 1; $i < $len; $i++){
            if($baseNum > $nums[$i]){
                $leftArr[] = $nums[$i];
            }else{
                $rightArr[] = $nums[$i];
            }
        }

        $leftArr =  $this->sortArray($leftArr);
        $rightArr = $this->sortArray($rightArr);
        return array_merge($leftArr, array($baseNum), $rightArr);
     }


     //插入排序
    function sortArray2($nums)
    {
        $len = count($nums);
        for($i = 1; $i < $len; $i++){

            $tmp = $nums[$i];
            for($j = $i - 1; $j >= 0; $j--){
                if($tmp < $nums[$j]){
                    $nums[$j + 1] = $nums[$j];
                    $nums[$j] = $tmp;
                }else{
                    break;
                }
            }
        }

      return $nums;
    }



    //冒泡
    function sortArray1($nums) {

    $len = count($nums);
    for($i = 1; $i < $len; $i++) {

        for($j = 0; $j < $len - $i; $j++) {
            if($nums[$j] > $nums[$j + 1]) {
                $tmp = $nums[$j + 1];
                $nums[$j + 1] = $nums[$j];
                $nums[$j] = $tmp;
            }
        }
    }

    return $nums;
    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章