匹配数据最有效的数据结构是什么?例如,假设我看到以下场景:
<time available> <buy or sell> <company name> <buy or sell price> <amount to buy or sell>
这样一个文件可能包含:
0 sell yahoo $100 #1
2 sell yahoo $14 #1
2 sell yahoo $28 #1
.. 95 other yahoo sells <$125 and amount #1
3 sell yahoo $17 #1
5 sell yahoo $33 #1
9 buy yahoo $125 #100
是否可以在 O(n) 时间内将最后一次买入与前 100 次卖出相匹配,其中 n = 100 如果要与与其想要购买的公司相对应的最低售价匹配(或在平局的情况下首先出现)?
我知道一个天真的解决方案是对列表进行排序并按顺序进行,但这需要比 O(n) 时间更长的时间。处理这个问题以及与之类似的最有效的数据结构是什么?