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

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

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


一、国内机票单程

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

cafd92ca1455879dc05ad0062e0e1aec6dd188ac

2、时间复杂度

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

93ebb91f1412c691523b13e252d2a7643eeaac39

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

运价数 ∝ 代理商总数

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

座位放大的倍数 ∝ 航班数


二、国内机票往返

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

ac227011482b274bb2685347f6c255bce91da4d3

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

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

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

1c0549e1869c23716771723c004dea6b8117ba1c

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

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

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

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


目录
相关文章
|
消息中间件 Java Kafka
Flink与Kafka版本对应关系
Flink与Kafka版本对应关系
2012 0
Flink与Kafka版本对应关系
|
安全 JavaScript 前端开发
JDK1.8的重要的新特性与功能
Java Development Kit (JDK) 1.8,也称为Java 8,是Java平台的一个重大更新,于2014年3月发布。它引入了多项新特性、新的API和性能提升
1629 3
|
4月前
|
人工智能 前端开发 数据可视化
HTML is the new Markdown:来自 Claude Code 团队的实践
AI Agent兴起后,Markdown因简洁易编辑成为默认输出格式。但Anthropic工程师Thariq提出:HTML正成为“新Markdown”——它通过CSS、交互元素、图表与响应式布局,显著提升信息密度与可读性,更适合PR评审、设计原型、技术报告等复杂场景。业界共识渐明:Markdown适合作为AI与开发者的轻量底稿,HTML则担当面向人类的展示与协作层。
712 3
HTML is the new Markdown:来自 Claude Code 团队的实践
|
SQL 监控 关系型数据库
一键开启百倍加速!RDS DuckDB 黑科技让SQL查询速度最高提升200倍
RDS MySQL DuckDB分析实例结合事务处理与实时分析能力,显著提升SQL查询性能,最高可达200倍,兼容MySQL语法,无需额外学习成本。
|
测试技术 API 开发者
Postman 旧版本下载方法全解(图文教程)
本文详解如何下载Postman历史版本,涵盖卸载当前版本、查找官方发布记录及旧版下载链接,并探讨版本管理痛点,引出Apifox等集成化接口测试工具的优势,助力开发测试更高效。
Postman 旧版本下载方法全解(图文教程)
|
Oracle 关系型数据库 MySQL
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
|
人工智能 安全 网络虚拟化
指南:Grok官网是什么?国内如何使用grok 3 官网AI
Grok AI 是一款非常强大的人工智能助手,不仅能够在社交媒体管理、语音助手等方面为用户提供便利,还可以极大提升工作效率。
11375 5
|
人工智能 算法 自动驾驶
人工智能的伦理困境与未来展望
本文探讨了人工智能技术发展中遇到的伦理挑战,并对其未来发展趋势进行了预测。文章首先介绍了AI技术的基本原理和应用,然后分析了伴随其发展而来的隐私、就业和决策透明度等问题。最后,提出了对AI未来发展的几点展望,包括技术进步、伦理规范建立和人机合作模式。
830 1

热门文章

最新文章