avatar
求一个算法思路# JobHunting - 待字闺中
h*6
1
一个简化的 order matching system.
匹配 sell/buy 的order, 只根据时间,不根据成交价格高低
price quantity
1. sell 120 10
2. sell 200 10
3. sell 100 10
4 buy 150 15
5 buy 200 5
交易完成后是
2. sell 200 5
3. sell 100 5
不知道怎么实现价格匹配最好
最简单的实现是一个list, 按时间顺序插入节点,有一个order来,从头遍历每个节点
,价格合适就trade. 但这样实现会不会太慢。
但这个不要求trade根据价格来,所以也没办法用价格做key 来做map. 请教各位有啥更
好的方法吗?
谢谢
avatar
n*r
2
没太搞明白你这个是干啥用的。是面试题吗?
既然是order matching system,应该从System Design的角度考虑。
至少要用数据库吧,这样算法的那点复杂度基本可以直接忽略,因为硬盘操作和内存操
作不是一个数量级的。加快速度用cache,然后数据量大了分布式存储。
纯算法的话可以用生产者消费者吧,但是因为根据时间来定,用不了多线程。
可以用两个Queue,一个是Buy的,一个是Sell的,生产者简单就是根据Order类型入对
,消费者是从两个队列的头部开始比较,决定如何Trade。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。