7

おそらく、小さな例で最もよく説明されています。
関係を考えると

A < B < C
A < P < Q 

正しい出力は

ABCPQ or APQBC or APBCQ ... etc.

つまり、特定の関係が成立する順序はすべて有効です。

実装が最も簡単なソリューションに最も興味がありますが、速度と時間の点で最高のO(n)も興味深いものです。

4

3 に答える 3

9

これはトポロジー ソーティングと呼ばれます。

標準的なアルゴリズムでは、最小限の要素を出力してから削除し、完了するまで繰り返します。

于 2009-01-26T18:32:16.257 に答える
1

いくつかの並べ替えを行います。最初に最初のルールに従ってソートし、次に 2 番目のルールに従ってソートします。ルールに矛盾が含まれていない限り、機能するはずです。簡単に実装できます。

于 2009-01-26T18:02:56.877 に答える
1

手元にあるシーケンスを使用して、C++ で make_heap、pop_heap を繰り返し呼び出すことができます。

于 2009-01-26T18:55:46.380 に答える