bash| 排序算法 | 最好时间复杂度 | 最坏时间复杂度 | 平均时间复杂度 | 空间复杂度 | 是否稳定 | 核心思想 |
| ---- | ---------- | ---------- | --------------- | -------- | ----- | --------------- |
| 冒泡排序 | O(n) | O(n²) | O(n²) | O(1) | ✅ 稳定 | 相邻比较,大的冒后面 |
| 选择排序 | O(n²) | O(n²) | O(n²) | O(1) | ❌ 不稳定 | 每轮选最小,放前面 |
| 插入排序 | O(n) | O(n²) | O(n²) | O(1) | ✅ 稳定 | 当前元素插入已排好序列 |
| 快速排序 | O(n log n) | O(n²) | O(n log n) | O(log n) | ❌ 不稳定 | 分治 + 找基准 + 左右排序 |
| 归并排序 | O(n log n) | O(n log n) | O(n log n) | O(n) | ✅ 稳定 | 分治 + 合并有序子序列 |
| 希尔排序 | O(n log n) | O(n²) | O(n^1.3)\~O(n²) | O(1) | ❌ 不稳定 | 插入排序的优化(分组) |
| 堆排序 | O(n log n) | O(n log n) | O(n log n) | O(1) | ❌ 不稳定 | 构建大顶堆/小顶堆 |
| 计数排序 | O(n + k) | O(n + k) | O(n + k) | O(n + k) | ✅ 稳定 | 用数组记录频次 |
| 桶排序 | O(n + k) | O(n²) | O(n + k) | O(n + k) | ✅ 稳定 | 分桶 + 各桶分别排序 |
| 基数排序 | O(nk) | O(nk) | O(nk) | O(n + k) | ✅ 稳定 | 按位排序(从低到高) |
GitLab 提供的一套自动化流水线系统,用于自动构建、测试、部署代码
核心:命中某些分支后,自动将代码发布到生产或测试环境,无需人为确认发版,常用于apk打包、前端发版情况
1、基于.gitlab-ci.yml配置的方案:(无法避免防火墙影响)
思路:
1)拉起gitlab上的Runner,Runner通过ssh跳到生产环境,然后执行脚本;