想像一下…

先看一個每學期都會上演的場景:

但如果這疊考卷已經按分數從高到低疊好呢?第 59 名——從最上面數 59 張抽出來就是;查 87 分——像查字典一樣往中間翻幾下就能確定,完全不用一頁一頁讀。

同一疊考卷、同樣的問題,「亂的」和「排好的」處理起來是兩個世界。把東西按照指定的順序排好,這個動作就叫排序(sorting)——它是競程裡出場率最高的操作之一:很多題目排完序就等於解完了一大半。

本單元做兩件事。前半段學會「」:C++ 內建的 sort 函式一行就能排天下——不過想看懂它的寫法,得先補一堂「指標」課(11.211.3)。後半段學會「」:拆開黑盒子,看三種經典排序演算法(11.10 起)——知道排序是怎麼辦到的、代價是多少,sort 的快才有意義。