当前位置: 首页 > news >正文

算法-快速排序和归并排序

1. 快排

2. 归并排序

  • 最好情况、最坏情况、平均情况,时间复杂度都为\(O(nlogn)\)
  • 空间复杂度为\(O(n)\)。归并排序不是原地排序算法,需要额外的空间来存储tmp数组。
public static void mergeSort(int[] arr){if (arr == null || arr.length<=1)return ;int[] tmp = new int[arr.length];mergeSort(arr, 0, arr.length-1, tmp);
}private static void mergeSort(int[] arr, int left, int right, int[] tmp){if(left >= right) return;int mid = left + (right - left) / 2;    // 防止整数溢出// 分支递归mergeSort(arr, left, mid, tmp);         // 左半部分mergeSort(arr, mid+1, right, tmp);      // 右半部分// 合并两个有序数组merge(arr, left, mid, right, tmp);
}private static void merge(int[] arr, int left, int mid, int right, int[] tmp) {int leftIndex = left;int rightIndex = mid+1;int tmpIndex = left;        // 临时数组索引while(leftIndex<=mid && rightIndex<=right) {if(arr[leftIndex] <= arr[rightIndex]) {tmp[tmpIndex++] = arr[leftIndex++];         } else {tmp[tmpIndex++] = arr[rightIndex++];}}// 将剩余元素拷贝到临时数组中while(leftIndex <= mid) {tmp[tmpIndex++] = arr[leftIndex++]; }while(rightIndex <= right) {tmp[tmpIndex++] = arr[rightIndex++];}// 将临时数组的内容拷贝回原数组for(int i = left; i<=right; ++i) {arr[i] = tmp[i];}
}
http://www.jsqmd.com/news/39237/

相关文章:

  • 记一次 .NET 某理财管理客户端 OOM溢出分析
  • 计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食素材 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
  • P14400 [JOISC 2016] 回转寿司 / Sushi
  • 思路
  • 灰度的openkruise rollout - Super
  • P14367 [JOISC 2018] 帐篷 / Tents
  • 代码加密技术 - 实践
  • P6532 [COCI 2015/2016 #1] TOPOVI
  • Apache Struts远程代码执行漏洞CVE-2025-12703解析
  • P9433 [NAPC-#1] Stage5 - Conveyors
  • P11038 【MX-X3-T5】「RiOI-4」Countless J-Light Decomposition
  • 【每日一面】BOM 是什么
  • P9638 「yyOI R1」youyou 的军训
  • P1012 [NOIP 1998 提高组] 拼数
  • 同步/异步和阻塞/非阻塞学习笔记
  • python 单词搜索(回溯-矩阵-字符串-中等)含源码(二十) - 指南
  • PHP生成RSA密钥对及RSA签名验证类库
  • 2025年杭州维修手机培训公司权威推荐榜单:手机维修教程/手机屏幕维修/维修手机源头公司精选
  • 2025年A2级防火抗倍特板批发厂家权威推荐榜单:高压耐火墙面装饰板/手HPL防火板/隧道防火装饰板源头厂家精选
  • 在基于FastAPI的Python开发框架后端,增加阿里云短信和邮件发送通知处理
  • 11月13日打卡
  • Comparative linguistics
  • 2025-11-11 PQ v.Next日志记录
  • ANT天线ESD防护
  • MATLAB离群点检测与删除
  • 2025短视频拍摄公司排名与推荐:3个核心标准帮你选对团队,避开无效投入
  • C#标签批量打印程序开发
  • 助力企业构建 AI 原生应用,函数计算 FunctionAI 重塑模型服务与 Agent 全栈生态
  • 小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇数据库篇MySQLMSSQLOracle自动化方案
  • vue2 混同,封装公共方法 - 东方不败-