2
読み取り専用スタックを使用した並べ替え
次の設定を考慮してください。 我々は、スタック与えられている含まれているn個のアイテムを。sssnnn 一定の数の追加スタックを使用できます。O(1)O(1)O(1) これらのスタックに次の操作を適用できます。 スタックが空かどうかを確認し、 2つのスタックの一番上のアイテムを比較し、 スタックの一番上のアイテムを削除し、 スタックの一番上のアイテムを印刷し、 スタックの一番上のアイテムを別のスタックにコピーし、 あるスタックのコンテンツを別のスタックにコピーします。 許可される操作はこれらのみであることに注意してください。アイテムを交換することはできず、スタックにアイテムをコピーすることを除き、スタックにアイテムをプッシュすることはできません(その後、ターゲットスタックの以前のコンテンツは破棄され、コピーされたアイテムのみが含まれます) 。 比較でスタックをソートするアルゴリズムは次のとおりです。O(n2)O(n2)O(n^2) last := empty for i from 1 to n min := empty w := s while w is not empty if w.top > last and w.top < min min := w.top delete w.top print min last := …