首页 > 解决方案 > 在表中查找排序顺序

问题描述

我得到一个包含三列的表,并且必须找到用于排序的列的顺序。可以是 column1 用于首先排序,column2 用于打破关系,然后是 column3。否则可以,column3 用于首先排序,column1 用于打破平局,依此类推。

这是在 Java 中,所以我可以将值存储在数组中。但只要想法本身就足够了,我可以实施。是否有与此用例相关的算法范式?任何想法表示赞赏。

编辑:示例

说,前 01

Movie = ["inception", "inception", "memento"]
rating = [5, 8, 7]
bo = [700, 652, 458]

这里的排序顺序是:电影,评级。评级没有平局,所以 BO 没有用于排序。

防爆02

Movie = ["inception", "inception", "memento", "memento", "memento"]
rating = [9, 8, 7, 6, 9]
bo = [652, 700, 458, 555, 555]

这里的排序顺序是电影、电影、评分。BO用于打破电影的平局,评级用于打破BO的平局。

标签: algorithmsorting

解决方案


检查每一列是否有相邻的无序对。排序的第一列将没有这些。其他人也可能,在这种情况下,您无法判断哪个是第一个排序列。

如果您可以识别第一个排序列,则通过以相同方式检查其他两个列来识别第二个列,但仅适用于第一个排序列中的相同值集(即,排序的第二列有机会影响任何事情。剩下的两列中至少有一列没有相邻的无序对(第一列中的元素相同)。如果只有一个,那么你找到了第二列,否则你不能。


推荐阅读