对数字对进行排序的算法

我遇到了一个问题,我需要一些帮助从明亮的思想的SO。
我有N对无符号整数。我需要整理他们。对的结束向量应当不减少地由每对中的第一数字排序,并且不增大地由每对中的第二数字排序。每对可以具有彼此交换的第一和第二元素。有时没有解决方案,所以我需要抛出一个异常。

例:

in pairs:
1 5
7 1
3 8
5 6

out pairs:
1 7     <-- swapped
1 5     
6 5     <-- swapped
8 3     <-- swapped

^^没有交换对,是不可能建立的解决方案。因此,我们交换对(7,1),(3,8)和(5,6)并构建结果。
要么

in pairs:
1 5
6 9

out:
not possible

还有一个示例说明’排序对’首先不是解决方案。

in pairs:
1 4
2 5
out pairs:
1 4
5 2

谢谢

O(n log n)溶液
http://stackoverflow.com/questions/5323941/algorithm-to-sort-pairs-of-numbers

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:对数字对进行排序的算法