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

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

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


一、国内机票单程

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

cafd92ca1455879dc05ad0062e0e1aec6dd188ac

2、时间复杂度

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

93ebb91f1412c691523b13e252d2a7643eeaac39

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

运价数 代理商总数

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

座位放大的倍数 航班数


二、国内机票往返

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

ac227011482b274bb2685347f6c255bce91da4d3

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

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

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

1c0549e1869c23716771723c004dea6b8117ba1c

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

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

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

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


目录
相关文章
极态云中 2 行代码搞定流水账中的期初期末计算!
今天咱们就来聊聊如何用极态云这个神器来解决期初期末的计算!极态云 JIT 真的太强大了,只有你想不到,没有它做不到的。
|
9月前
|
弹性计算 NoSQL 关系型数据库
全网都在讨论阿里云降价,这波操作给跪了!
全网都在讨论阿里云降价,这波操作给跪了!百款产品直降,平均降幅20%,阿里云希望通过此次大规模降价,让更多企业和开发者用上先进的公共云服务,加速云计算在中国各行各业的普及和发展。这次降价包括云服务器ECS、对象存储OSS、云数据库都降价了,真降价,直降价:百款产品直降,平均降幅20%,阿里云百科分享阿里云2024年降价信息汇总表
|
算法 C++
蓝桥杯试题 算法训练 绘制地图 C/C++解法 AC(最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情。。。。)
蓝桥杯试题 算法训练 绘制地图 C/C++解法 AC(最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情。。。。)
127 0
|
算法 Oracle 关系型数据库
LeetCode(算法)- 121. 买卖股票的最佳时机
LeetCode(算法)- 121. 买卖股票的最佳时机
103 0
LeetCode(算法)- 121. 买卖股票的最佳时机
机票分享第六篇 机票搜索系统演进的经验
机票业务非常复杂,我们不得不应对这些复杂,也不断的想出一些招数演进系统。我回顾所做的事,再次思考并归纳核心思路,完成了本篇。 一、最大化统一,最小化变化 业务复杂,更不能随意新增接口、流程,思考如何将不同场景的流程融合在一起。
2589 0
|
搜索推荐 算法
今日份【推荐解决方案四部曲】请查收——第一部:基于协同过滤算法推荐
数据挖掘的一个经典案例就是尿布与啤酒的例子。尿布与啤酒看似毫不相关的两种产品,但是当超市将两种产品放到相邻货架销售的时候,会大大提高两者销量。
887 0
机票分享第三篇 机票计算过程及时间复杂度(国际篇)
延续上篇国内机票计算的话题,依然聚焦机票计算层,扩大范畴到国际。国际机票的区别在于会做更多的拼接,若所有数据全部参与计算则耗时过长,需要挑选一部分,还要保证挑选的部分恰好对应最低的价格。国际机票的有趣之处在于决定怎么挑。
2029 0