これはコードゴルフの質問です。
入力
最も便利な任意の形式の非負整数のリスト。
出力
最も便利な形式でソートされた順序で同じリスト。
制限
- 入力の整数の数が最悪の場合、コードはO(n log n)時間で実行する必要が
n
あります。これは、例えば、ランダム化されたクイックソートが出ていることを意味します。ただし、他にも多くの選択肢があります。 - 並べ替えライブラリ/関数/類似物を使用しないでください。また、ヒープライブラリのように、ほとんどの並べ替え作業を行うものは使用しないでください。基本的に、実装するものは何でも、ゼロから実装します。
必要に応じて関数を定義できますが、実際に動作する完全なプログラムでその例を示してください。以下のすべてのテストケースで正常かつ迅速に実行されるはずです。
テストケース
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
あなたの答え
実装したソートアルゴリズムとソリューションの長さを回答のタイトルに記載してください。
O(n log n)時間ソートアルゴリズム
多くのO(n log n)時間アルゴリズムが存在します。この表には、それらのいくつかのリストがあります。
intersect
配列の自動ソートなどの一部のセット関数。あなたもそれらを除外したいと思います。どうですかunique
(重複を削除し、結果を並べ替えます)?