机票分享第二篇 机票计算过程及时间复杂度(国内篇)

简介: 机票搜索过程:按照请求的条件,取得对应的运价、规则、座位,三者匹配并计算出票价,排序选择优先价格并展示。主要代价花在其中的匹配步骤,也是本篇介绍的重点。匹配和计算都位于计算层。 一、国内机票单程 1、三层循环做运价*规则*座位的笛卡尔积来实现匹配,并计算代理商机票销售价 2、时间复杂度 选取B.

机票搜索过程:按照请求的条件,取得对应的运价、规则、座位,三者匹配并计算出票价,排序选择优先价格并展示。主要代价花在其中的匹配步骤,也是本篇介绍的重点。匹配和计算都位于计算层。


一、国内机票单程

1、三层循环做运价*规则*座位的笛卡尔积来实现匹配,并计算代理商机票销售价

cafd92ca1455879dc05ad0062e0e1aec6dd188ac

2、时间复杂度

选取B2C运价(此外还有渠道运价、B2B运价)的计算节点为例

93ebb91f1412c691523b13e252d2a7643eeaac39

指定出发、到达下的计算次数 运价数*规则数*座位数

运价数 代理商总数

规则放大的倍数 规则基于机场、航班的细分(不同返点、留钱)程度

座位放大的倍数 航班数


二、国内机票往返

1、基于两个单程结果拼接

ac227011482b274bb2685347f6c255bce91da4d3

时间复杂度:拼接步骤所消耗时间占比可忽略不计(由于合并后的结果数量级远低于合并前),等于单程。

2、基于往返打包运价计算

往返打包运价*往返规则*去程航班*返程航班的笛卡尔积来实现匹配,并计算代理商机票销售价

1c0549e1869c23716771723c004dea6b8117ba1c

时间复杂度:当打包运价数远低于单程运价数时,时间占比可忽略;否则为单程复杂度*单个航司下的平均航班数。

3、两类结果合并后为最终结果

两类结果可以并行计算,合并消耗时间占比很小

总时间复杂度:与单程相当,或大一个数量级。


目录
相关文章
还在担心期末挂科吗? 期末必备复习资料-----“树“的概念
还在担心期末挂科吗? 期末必备复习资料-----“树“的概念
159 0
一招搞定电商首页随机排序数据算法
大家好前面我们了解了order by的实现方式以及内部的涉及到的知识点。今天我们介绍一下关于实战的知识点。主要应用于表数据比较多的情况下,如何巧妙地从中取出几条数据。
一招搞定电商首页随机排序数据算法
买啥只管往车里放,推出去自己能结账!亚马逊无人黑科技上新,这次瞄准的是购物车
买啥只管往车里放,推出去自己能结账!亚马逊无人黑科技上新,这次瞄准的是购物车
208 0
机票分享第六篇 机票搜索系统演进的经验
机票业务非常复杂,我们不得不应对这些复杂,也不断的想出一些招数演进系统。我回顾所做的事,再次思考并归纳核心思路,完成了本篇。 一、最大化统一,最小化变化 业务复杂,更不能随意新增接口、流程,思考如何将不同场景的流程融合在一起。
2605 0
论文解读 | 数十亿商品中,长尾和新品怎么找到新主人?
在推荐系统的发展历程中,面临两个核心问题:用户的长尾覆盖度以及新商品的冷启动,在这两个维度下的模型扩展能力的瓶颈一直以来对广大推荐算法工程师都是不小的挑战。本文基于Graph Embedding的理论知识提出了创新框架,旨在提升商品推荐的多样性和发现性。
1282 0
机票分享第三篇 机票计算过程及时间复杂度(国际篇)
延续上篇国内机票计算的话题,依然聚焦机票计算层,扩大范畴到国际。国际机票的区别在于会做更多的拼接,若所有数据全部参与计算则耗时过长,需要挑选一部分,还要保证挑选的部分恰好对应最低的价格。国际机票的有趣之处在于决定怎么挑。
2046 0
高德拉特难题:悬赏5000美金的一道作业排序问题
高德拉特难题:悬赏5000美金的一道作业排序问题 高德拉特曾经悬赏5000美金的一道作业排序问题,如何使产出最大化?你能做出的最多产品是多少? 该产品工艺流程如图,成品由4个零部件组成,每个零部件都需要经过一定的加工流程,具体需要使用的设备和时间在图中有标注,其中1-10,1-20表示第一个零件的第1和第2道工序,A、B和C表示三台加工设备,即资源。
905 0