51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

证券撮合系统中的价格优先、时间优先规则,请用伪代码实现核心撮合逻辑,并分析其时间复杂度。

上海证券交易所A05难度:简单

答案

1) 【一句话结论】
证券撮合系统的价格优先(同方向价格越有利越优先)和时间优先(价格相同先提交)规则通过维护买/卖优先队列实现,核心逻辑是比较队列头部价格匹配成交,时间复杂度由优先队列操作决定(插入/取出O(log n),整体循环O(n log n))。

2) 【原理/概念讲解】
价格优先和时间优先是撮合的核心规则。价格优先指同方向订单中,卖单(卖出)价格越低越优先(低价卖单更易成交),买单(买入)价格越高越优先(高价买单更愿意出价);时间优先则是价格相同的情况下,先提交的订单优先(保证公平性)。比如排队买票,价格优先保证价格有效性,时间优先保证先来先得。

3) 【对比与适用场景】

规则类型定义特性使用场景注意点
价格优先同方向订单中,价格越有利(卖单价格越低,买单价格越高)的优先价格是核心排序依据,保证价格有效性传统证券市场(如A股、美股)需明确订单方向(卖/买)
时间优先价格相同的情况下,先提交的订单优先时间顺序是次要排序,保证公平性所有金融市场(如期货、外汇)需时间戳唯一标识

4) 【示例】
伪代码核心逻辑:

// 买方队列:最大堆(键为(-price, time),价格降序+时间升序)
buyQueue = MaxHeap([ (price=110, time=1), (price=105, time=2) ])
// 卖方队列:最小堆(键为(price, time),价格升序+时间升序)
sellQueue = MinHeap([ (price=108, time=3), (price=110, time=4) ])

while buyQueue not empty and sellQueue not empty:
    buyTop = buyQueue.peek()  // 买单头部(价格最高)
    sellTop = sellQueue.peek()  // 卖单头部(价格最低)
    if buyTop.price >= sellTop.price:
        // 成交
        buyQueue.pop()  // 移除买单头部
        sellQueue.pop()  // 移除卖单头部
    else:
        // 不匹配,停止
        break

// 示例运行:
// 第一次比较:buyTop=110, sellTop=108 → 成交,移除两者
// 剩余buyQueue: [(105,2)], sellQueue: [(110,4)]
// 第二次比较:105 < 110 → 不匹配,循环结束

5) 【面试口播版答案】
价格优先和时间优先是证券撮合的核心规则。价格优先指同方向订单中,卖单价格越低越优先,买单价格越高越优先;时间优先是价格相同下先提交的优先。伪代码实现上,维护买方(最大堆,价格降序+时间升序)和卖方(最小堆,价格升序+时间升序)队列,循环比较头部价格,匹配则成交并移除,否则继续。时间复杂度取决于优先队列操作,插入和取出都是O(log n),整体循环O(n log n)。

6) 【追问清单】

  1. 如果多个订单同时到达,如何处理?
    回答要点:用时间戳唯一标识,按时间排序,先到的先入队。
  2. 如何处理价格相同但时间相同的情况?
    回答要点:时间相同按随机数或顺序号区分,保证唯一性。
  3. 系统并发高时如何优化?
    回答要点:使用无锁数据结构(如CAS操作)或锁分离(买/卖队列独立锁)。
  4. 如果引入成交量优先规则,如何修改?
    回答要点:修改优先级函数,加入成交量参数(如价格+成交量)。
  5. 时间复杂度是否可以优化到O(n)?
    回答要点:若用有序映射+二分查找,可能优化到O(n log n)或O(n),但优先队列更高效。

7) 【常见坑/雷区】

  1. 价格优先方向搞反(如卖单价格越高优先)。
  2. 时间优先未考虑价格相同的情况。
  3. 时间复杂度分析错误(误认为O(n²))。
  4. 伪代码逻辑错误(未正确维护队列头部,导致匹配错误)。
  5. 未说明数据结构选择(如用数组而非优先队列,导致复杂度不对)。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1