我正在寻找一种简单的实现算法,该算法可以找到某个列上具有最大值的行。然后,它应该找到在该特定列上具有接近最大值的所有行(这两个步骤可以组合吗?)。然后,在选定的行中,我需要找到另一列上具有最小值的那个。
奖励:如果有多个这样的条目,我需要在另一列上找到具有最小值的行。
是的,我知道使用SQL(ite)很容易做到这一点,但我不想浪费时间将文本文件中的数据解析为数据库表...
我对如何做到这一点的简单想法感兴趣(伪代码很好),而且,现在,我只能想到一些相当复杂的东西:
答案 0 :(得分:1)
其实你做的是对的。除非您的行值已排序,否则您无法避免在步骤1中浏览所有值,因此您最终会花费O(R)
时间,其中R
是行数。
第二步,其成本也是O(R)
,因此不会降低算法的复杂性。
如果我们认为值“接近最大值”的数量相对于O(1)
为R
,那么第三步是O(C)
其中C
是{{1}}列数。如果您的值未排序,则不能比做得更好,因为您需要测试所有值以找到最小值。
您的算法具有最佳复杂性。
答案 1 :(得分:0)
我对此的看法:
速度由使用的排序算法定义。