可能最好的例子是一個小例子。
鑑於關係排序部分排序列表的最佳方法是什麼?
A < B < C
A < P < Q
正確的輸出將
ABCPQ or APQBC or APBCQ ... etc.
換句話說,任何排序是有效的在給定的關係成立。
我對最容易實現的解決方案最感興趣,但速度和時間上的最佳O(n)也很有趣。
可能最好的例子是一個小例子。
鑑於關係排序部分排序列表的最佳方法是什麼?
A < B < C
A < P < Q
正確的輸出將
ABCPQ or APQBC or APBCQ ... etc.
換句話說,任何排序是有效的在給定的關係成立。
我對最容易實現的解決方案最感興趣,但速度和時間上的最佳O(n)也很有趣。
標準算法是輸出一個最小元素,然後刪除它並重復,直到完成。
做幾種。首先按照第一條規則排序,然後按照第二條排序等。應該工作,除非你的規則包含矛盾。很容易實施。
您可以在C++中重複調用make_heap,pop_heap,並使用手頭的序列。
你是否想要一種合併兩個排序列表的方法? – Triptych 2009-01-26 17:39:25
不,一個最初隨機排列的單子 – 2009-01-26 17:40:34