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

算法—合并排序—js(场景:大数据且需稳定性)

合并排序基本思想(稳定且高效)
将数组递归拆分为最小单元,合并两个有序数组。

特点:
时间复杂度:O(n log n)
空间复杂度:O(n)
稳定排序

// 合并排序-分解
function mergeSort(arr) {if (arr.length < 2) return arr;const mid = Math.floor(arr.length / 2);let left = arr.slice(0, mid);let right = arr.slice(mid)if (left.length > 1) left = mergeSort(left);if (right.length > 1) right = mergeSort(right);return merge(left,right)
};// 合并排序-合并排序
function merge(left,right) {let result = [], i = j = 0;while(i<left.length && j<right.length) {if (left[i] < right[j]) {result.push(left[i]);i++;} else {result.push(right[j]);j++;}}return [...result, ...left.slice(i), ...right.slice(j)];
};

在这里插入图片描述

相关文章:

  • 80 7816协议与串口uart协议时序图
  • 【CPU】中断即时性
  • 自然语言处理(9)—— 共现词矩阵及Python实现
  • C#进阶学习(八)常见的泛型数据结构类(3)SortedDictionary<TKey, TValue>与SortedList<TKey, TValue>
  • OJ - 设计循环队列
  • 交换机端口安全
  • C++学习:六个月从基础到就业——内存管理:内存泄漏与避免
  • chili3d调试6 添加左侧面板
  • 【第四十一周】文献阅读:HippoRAG:受神经生物学启发的大型语言模型长期记忆机制
  • OSPF特殊区域
  • 金融图QCPFinancial
  • mac监控linux上mysql性能(Grafana+Prometheus+mysqld_exporter)
  • VSCode PIO使用Jlink SWD烧录Stm32
  • 【C++初阶】第15课—模版进阶
  • 进程与线程:01 CPU管理的直观想法
  • 股票分析技术指标【RSV、KDJ】
  • 【Ollama:本地LLM工具】
  • windows服务器及网络:论如何安装(虚拟机)
  • 驱动开发硬核特训 · Day 15:电源管理核心知识与实战解析
  • 基于javaweb的SpringBoot儿童爱心管理系统设计与实现(源码+文档+部署讲解)
  • 金价新高不断,上金所再发风险提示,黄金能否持续闪耀?
  • 中共中央办公厅、国务院办公厅印发《农村基层干部廉洁履行职责规定》
  • 拒绝“假期刺客”,澎湃启动“五一”消费维权线索征集
  • 道客网络陈齐彦:技术无界化,开源让AI变成了“全民食堂”
  • 女子报警称醉酒后疑似被性侵,长沙警方:嫌犯邱某某已被刑拘
  • 【社论】家政服务提质扩容,为何被一提再提