<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[success] # 冒泡排序 ~~~ 1.冒泡排序比較所有相鄰的兩個項,如果第一個比第二個大,則交換它們。元素項向上移 動至 正確的順序,就好像氣泡升至表面一樣,冒泡排序因此得名 2.如圖冒泡排序會將排序好的結果至于末尾,是一個從后向前的過程 ~~~ ![](https://box.kancloud.cn/b7d216a5b292cf3a5412bbc7fbb56a9e_826x257.gif) ![](https://img.kancloud.cn/f6/84/f6848d124513bcb18ea7d618bf5b9cc7_1004x958.png) >[info] ## 代碼實現 >[danger] ##### 根據純概念實現 ~~~ // 生成隨機數數組 function randomArray(max, min, len) { let randomNum = 0 const array = [] for (let i = 0; i < len; i++) { randomNum = Math.floor((Math.random() * (max - min + 1)) + min) array.push(randomNum) } return array } const array = randomArray(1, 10, 5) // 冒泡排序 const Compare = { LESS_THAN: -1, BIGGER_THAN: 1, EQUALS: 0 }; function defaultCompare(a, b) { if (a === b) { return Compare.EQUALS; } return a < b ? Compare.LESS_THAN : Compare.BIGGER_THAN; } function swap(array, a, b) { /* const temp = array[a]; array[a] = array[b]; array[b] = temp; */ [array[a], array[b]] = [array[b], array[a]]; } function bubbleSort(array, compareFn = defaultCompare) { const { length } = array for (let i = 0; i < length; i++) { for (let j = 0; j < length - 1; j++) { if (compareFn(array[j], array[j + 1]) === Compare.BIGGER_THAN) { swap(array, j, j + 1) } } } } bubbleSort(array) console.log(array) ~~~ >[danger] ##### 優化 ~~~ 1.這里做了一個小改動'length-1-i',因為在概念上已經說了是相鄰的進行比較,所以在每一輪的時候對應末尾位置數據 已經排序好了,已經拍好的位置就不用相鄰位置進行比較了,因此做了這個改動 2.但無論怎么改動都改變不了冒泡排序速度慢的事實,運行就是O(n2)。 ~~~ ~~~ function bubbleSort(array, compareFn = defaultCompare) { const { length } = array for (let i = 0; i < length - 1; i++) { // 這里做優化 for (let j = 0; j < length - 1 - i; j++) { if (compareFn(array[j], array[j + 1]) === Compare.BIGGER_THAN) { swap(array, j, j + 1) } } } } ~~~
                  <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>

                              哎呀哎呀视频在线观看