algorithm - 在表中查找排序顺序
问题描述
我得到一个包含三列的表,并且必须找到用于排序的列的顺序。可以是 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的平局。
解决方案
检查每一列是否有相邻的无序对。排序的第一列将没有这些。其他人也可能,在这种情况下,您无法判断哪个是第一个排序列。
如果您可以识别第一个排序列,则通过以相同方式检查其他两个列来识别第二个列,但仅适用于第一个排序列中的相同值集(即,排序的第二列有机会影响任何事情。剩下的两列中至少有一列没有相邻的无序对(第一列中的元素相同)。如果只有一个,那么你找到了第二列,否则你不能。
推荐阅读
- android - 如何防止 Dexguard 混淆 anroid studio 中的资源文件夹?
- sql - 使用由日期范围驱动的 ID 更新字段
- reactjs - 如何检查长列表是否在 React 中呈现
- flutter - 发送数据时连接丢失
- android - 如何在活动和应用程序级别将 CountDownTimer 与 ViewModel 和 Livedata 一起使用?
- laravel-5 - 如何在 laravel 更新期间保持相同的图像而不再次选择图像?
- spring-boot - Springboot @Value 未加载
- reactjs - Twitter Cards - “警告:未找到元标记”
- javascript - 我们如何在单个提示中添加多个用户输入(在 javascript 中)?
- maven - 在 java,Spring Boot 中使用 BitBucket 作为私有存储库