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

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

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


一、国内机票单程

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

cafd92ca1455879dc05ad0062e0e1aec6dd188ac

2、时间复杂度

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

93ebb91f1412c691523b13e252d2a7643eeaac39

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

运价数 代理商总数

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

座位放大的倍数 航班数


二、国内机票往返

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

ac227011482b274bb2685347f6c255bce91da4d3

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

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

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

1c0549e1869c23716771723c004dea6b8117ba1c

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

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

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

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


目录
相关文章
|
1月前
L1-043 阅览室 (20 分)(在线模拟题)
L1-043 阅览室 (20 分)(在线模拟题)
26 0
|
7月前
|
机器学习/深度学习 传感器 安全
2023 年高教社杯C题蔬菜类商品的自动定价与补货决策思路及代码(持续更新)
2023 年高教社杯C题蔬菜类商品的自动定价与补货决策思路及代码(持续更新)
|
9月前
|
数据建模
【美赛】2023年MCM问题Y:理解二手帆船价格(代码&思路)
【美赛】2023年MCM问题Y:理解二手帆船价格(代码&思路)
|
11月前
|
区块链 数据安全/隐私保护
 哈希竞猜游戏源码版丨哈希竞猜游戏系统开发(逻辑及详情)丨哈希竞猜游戏开发稳定版
哈希函数的运算结果是哈希值竞猜,如果两个哈希值相同的话,那这两个输入值的微盘结果极大可能会是多国语言相同的,也有一部分可能是大富不同的,这一部分的情况就叫做幸运哈希竞猜碰撞。反之如果两个哈希值是不相同的,那么这两个散列值的原始输入一定是不相同的。
|
算法 Java Python
【算法模板】DFS秒杀模板—附练习题(阳光号启航)(一)
【算法模板】DFS秒杀模板—附练习题(阳光号启航)(一)
【算法模板】DFS秒杀模板—附练习题(阳光号启航)(一)
1032 挖掘机技术哪家强 (20 分)
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
90 0
|
存储 负载均衡 算法
哈希竞猜游戏源码版丨哈希竞猜游戏系统开发(逻辑及详情)丨哈希竞猜游戏开发稳定版
其实现原理是通过哈希函数(也叫散列函数)将元素的键名映射为数组下标(转化后的值叫做哈希值或散列值),然后在对应下标位置存储记录值。当我们按照键名查询元素时,可以使用同样的哈希函数,将键名转化为数组下标,从对应的数组下标位置读取数据
L1-043 阅览室 (20 分)(在线模拟题
L1-043 阅览室 (20 分)(在线模拟题
94 0
L1-043 阅览室 (20 分)(在线模拟题
|
算法
算法竞赛入门做题记录:苹果采购
算法竞赛入门做题记录:苹果采购
213 0
|
SQL 算法 搜索推荐
一招搞定电商首页随机排序数据算法
大家好前面我们了解了order by的实现方式以及内部的涉及到的知识点。今天我们介绍一下关于实战的知识点。主要应用于表数据比较多的情况下,如何巧妙地从中取出几条数据。
一招搞定电商首页随机排序数据算法

热门文章

最新文章