什么是最有效的数据结构来匹配数据?例如,假设我面临以下情况:
<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
如果要将此最后一笔购买与前面100笔销售匹配,是否可以在O(n)时间内完成?其中n = 100,如果购买要与所需购买的公司对应的最低销售价格匹配(或在平局的情况下选择排名靠前的公司)。
我知道一种朴素的解决方案是对列表进行排序并按顺序查找,但这需要比O(n)时间更长。处理该问题及类似问题的最有效数据结构是什么?