<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 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 插入排序 插入排序,一般我們指的是簡單插入排序,也可以叫直接插入排序。 每次把一個數插到已經排好序的數列里面形成新的排好序的數列,以此反復。 時間復雜度:`O(n^2)` ``` []表示排好序 第一輪: [4] 2 9 1 拿待排序的第二個數 2,插入到排好序的數列 [4] 與排好序的數列 [4] 比較 第一輪進行中:2 比 4 小,插入到 4 前 第二輪: [2 4] 9 1 拿待排序的第三個數 9,插入到排好序的數列 [2 4] 與排好序的數列 [2 4] 比較 第二輪進行中: 9 比 4 大,不變化 第三輪: [2 4 9] 1 拿待排序的第四個數 1,插入到排好序的數列 [2 4 9] 與排好序的數列 [2 4 9] 比較 第三輪進行中: 1 比 9 小,插入到 9 前 第三輪進行中: 1 比 4 小,插入到 4 前 第三輪進行中: 1 比 2 小,插入到 2 前 結果: [1 2 4 9] ``` 因為是**從右到左**,將一個個未排序的數,插入到左邊已排好序的隊列中,所以插入排序,相同的數在排序后順序不會變化,這個排序算法是穩定的 ## 算法實現 ``` package main import "fmt" func InsertSort(list []int) { n := len(list) // 進行 N-1 輪迭代 for i := 1; i <= n-1; i++ { deal := list[i] // 待排序的數 j := i - 1 // 待排序的數左邊的第一個數的位置 // 如果第一次比較,比左邊的已排好序的第一個數小,那么進入處理 if deal < list[j] { // 一直往左邊找,比待排序大的數都往后挪,騰空位給待排序插入 for ; j >= 0 && deal < list[j]; j-- { list[j+1] = list[j] // 某數后移,給待排序留空位 } list[j+1] = deal // 結束了,待排序的數插入空位 } } } func main() { list := []int{5} InsertSort(list) fmt.Println(list) list1 := []int{5, 9} InsertSort(list1) fmt.Println(list1) list2 := []int{5, 9, 1, 6, 8, 14, 6, 49, 25, 4, 6, 3} InsertSort(list2) fmt.Println(list2) } ``` 數組規模 n 較小的大多數情況下,我們可以使用插入排序,它比冒泡排序,選擇排序都快,甚至比任何的排序算法都快。 數列中的有序性越高,插入排序的性能越高,因為待排序數組有序性越高,插入排序比較的次數越少。 大家都很少使用冒泡、直接選擇,直接插入排序算法,因為在有大量元素的無序數列下,這些算法的效率都很低。
                  <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>

                              哎呀哎呀视频在线观看