• 4 7 2 8 9 3 5 1 6 共9個
  • 請用快速排序,將步驟列出
  • 發表一篇文章,標題為:「作業11:快速排序<學號> <姓名> 」,把答案及過程寫出來。
  • 4    7    2    8    9    3    5    1    6

          ↑                                 ↑

          L                                 r  

    4    1    2    8    9    3    5    7    6

    以6為基準

    因為 L 要比基準值大 因4比6小 所以換下一個 7比6大 所以7是L

    因為r要比基準值小       1比6小

    所以L跟r的值互換 就變成:

    4    1    2    8    9    3    5    7    6

    再繼續

    4    1    2    8    9    3    5    7    6

                     ↑                ↑

                     L                r

    4    1    2    5    9    3    8    7    6

    以6為基準

    因為 L 要比基準值大 因2比6小 所以換下一個 8比6大 所以8是L

    因為r要比基準值小       5比6小

    所以L跟r的值互換 就變成:

    4    1    2    5    9    3    8    7    6

    再繼續

    4    1    2    5    9    3    8    7    6

                          ↑     ↑

                          L     r

    4    1    2    5    3    9    8    7    6  

    以6為基準

    因為 L 要比基準值大 9比6大 所以8是L

    因為r要比基準值小       3比6小

    所以L跟r的值互換 就變成:

    4    1    2    5    3    9    8    7    6  

    9再跟6交換

    6就固定不變

    因此分為兩部份

    (4    1    2    5    3)    6    (8    7    9)

    我們先做6前面的

    (4    1    2    5    3)    6    (8    7    9)

      ↑          ↑

      L          r

    (2    1    4    5    3)    6    (8    7    9)

    以3為基準

    因為 L 要比基準值大 4比3大 所以3是L

    因為r要比基準值小  因為5比3大 所以換下一個2比3小

    所以L跟r的值互換 就變成:

    (2    1    4    5    3)    6    (8    7    9)

     因為在執行下去L會在r的右邊

    因此不行執行所以4要跟3交換

    交換後3固定不變

    就會變成

    (2    1)    3    (5    4)    6    (8    7    9)

    前面的先做

    (2    1)    3    (5    4)    6    (8    7    9)

    ↑ ↑

    r L

    1    2    3    (5    4)    6    (8    7    9)

    以1為基準

    因為 L 要比基準值大 2比1大 所以2是L

    因為r要比基準值小    因為2比1大 所以還要往前挪 但是前面沒有數字了

    因此1直接跟2換

    1跟2接固定不變

    會變成

    1    2    3    (5    4)    6    (8    7    9)

    接個做4跟5

    1    2    3    (5    4)    6    (8    7    9)

                     ↑↑

                     r L

    1    2    3    4    5    6    (8    7    9)              

    以4為基準

    因為 L 要比基準值大  5比4大 所以5是L

    因為r要比基準值小    因為5比4大 所以還要往前挪 但是前面數字固定了

    因此4直接跟5換

    4跟5接固定不變

    會變成

    1    2    3    4    5    6    (8    7    9)    

    現在做最後面的

    1    2    3    4    5    6    (8    7    9)    

                                             ↑         ↑

                                             r          L

    1    2    3    4    5    6    (8    7)    9

    以9為基準

    因為 L 要比基準值大  因為都沒有比9大的數字  所以L要在9的後面

    因為r要比基準值小    因為7比9小

     所以L跟r不能互換(沒有數字可以互換)

    所以9就固定不變

    會變成

    1    2    3    4    5    6    (8    7)    9

    所以我們要做7跟8

    1    2    3    4    5    6    (8    7)    9

                                      ↑↑

                                      r L 

    1    2    3    4    5    6    7    8    9

    以7為基準

    因為 L 要比基準值大  因為8比7大  所以8是L

    因為r要比基準值小    因為8比9大  所以r要在8前面

    所以8跟7互換

    所以數字都固定了

    得証

    arrow
    arrow
      全站熱搜
      創作者介紹
      創作者 pearl10261 的頭像
      pearl10261

      歡迎來到媽媽的部落格

      pearl10261 發表在 痞客邦 留言(0) 人氣()