我正在寻找一种对一些数字进行排序的算法。输入就像300行,包含3个数字部分,我希望第一,第二和第三位置的数字最大。
示例输入:
F S T
1 2 3
1 1 1
1 0 0
1 1 0
2 1 0
并输出:
2 1 0
1 2 3
1 1 1
1 1 0
1 0 0
答案 0 :(得分:0)
由于您已请求算法,因此任何comparison-based sorting algorithm都可以:例如,您可以使用快速排序,合并排序或堆排序。
诀窍是要对行进行排序,因此需要定义如何“比较”一行与另一行。出于您的目的,如果存在A行,则A行“小于或等于B行”
A[0] < B[0]
或A[0] == B[0]
和
A[1] < B[1]
或A[1] == B[1]
和A[2] <= B[2]
要真正实现该算法,您需要做的就是实现您首选的基于比较的排序算法,然后用适当的逻辑替换对两个元素进行<=
比较的部分,比较上述行。