<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 冒泡排序 ``` //冒泡:依次對比相鄰的值,符合條件(大于或小于)則交換位置。 function sort_maopao($array ){ $len = count($array); for($i=0;$i<$len;$i++){ for($j=0;$j<$len-$i-1;$j++){ if( $array[$j] > $array[$j+1] ){ $temp = $array[$j]; $array[$j] = $array[$j+1]; $array[$j+1] = $temp; } } } return $array; } ``` ## 快速排序 ``` //快速排序:取一個元素作為基準,將數組分成兩部分,小在左,大在右,然后合并,遞歸調用。 function sort_fast($array){ if(count($array)<=1){ return $array; } $check = array_shift($array); $left_array = $right_array = []; foreach ($array as $v){ if($v<=$check){ $left_array [] = $v; }else{ $right_array [] = $v; } } $left_array = sort_fast($left_array); $right_array = sort_fast($right_array); return array_merge($left_array,[$check],$right_array); } ``` ## 插入排序 ``` //插入排序:首選默認第一個值為已排序部分。 將已排序部分的下一個值b 依次和 已排序數組的每一個值a作比較,如果 b小于a則,b插入到a的前面。(后值和前面每一個值作比較) function sort_insert($array){ $len = count($array); for ($i=1;$i<$len;$i++){ for($j=0;$j<$len-1;$j++){ if($array[$j]<$array[$i]){ $temp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $temp; } } } return $array; } ``` ## 選擇排序 ``` //選擇:依次選取數組中的值,將此值和數組中剩下的每一個值做比較,將最小的值放入到當前選取的值的位置上。 function sort_select($array){ $len = count($array); for($i=0;$i<$len-1;$i++){ //末位值無須比較 $mix = $i; //當前值下標 , 默認為最小值 for ($j=$i+1;$j<$len;$j++){ if($array[$j]<$array[$mix]){ $mix = $j; } } if($mix!=$i){ //當前值下標不是最小值,交換兩個下標的值。 $temp = $array[$i]; $array[$i] = $array[$mix]; $array[$mix] = $temp; } } return $array; } ``` ## 歸并排序 ``` //歸并排序: //將數組遞歸分成兩部分,將兩部分依次排序 function sort_merge($array){ $len = count($array); if($len<2){ return $array; } $chunk = intval($len / 2); $left = sort_merge( array_slice($array,0,$chunk) ) ; $right = sort_merge( array_slice($array,$chunk)) ; return _merge($left,$right); } function _merge($aArray,$bArray){ $cArray = []; while (count($aArray) && count($bArray)){ $cArray[] = $aArray[0] <$bArray[0] ? array_shift($aArray) : array_shift($bArray); } return array_merge($cArray,$aArray,$bArray); } ``` ##總結: https://www.cnblogs.com/mzhaox/p/11218297.html | 算法 |總結 | | --- | --- | | 冒泡 |遍歷每一個元素,每個元素和它后面的元素逐一對比,比較差異并交換位置。 | | 快速 |取基準值,遍歷元素,將小于 和大于基準值的元素分別放入到兩個數組中,將兩個數組分別遞歸調用,然后合并數組| | 插入 | 首選默認第一個值為已排序部分。 將已排序部分的下一個值b 依次和 已排序數組的每一個值a作比較,如果 b小于a則,b插入到a的前面。(后值和前面每一個值作比較)| | 選擇 | 依次選取數組中的值,將此值和數組中剩下的每一個值做比較,將最小的值放入到當前選取的值的位置上。 | | 歸并 |將數組遞歸分成兩部分,將兩部分依次排序 | ## 算法復雜度 ![](images/1176981-20200322160828471-490529190.png) 參考:https://www.jianshu.com/p/f4cca5ce055a
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看