恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

算法日常・每日刷题--<归并排序>1

  • 首页
  • 资讯中心
  • /
  • 算法日常・每日刷题--<归并排序>1

相关资讯

ChatGPT家长通知功能技术解析:AI安全与青少年保护实践 2026/8/2 19:05:46
计算机毕业设计之基于SpringBoot的社区老年群体智能推荐外卖点餐系统设计与实现 2026/8/2 19:05:46
从检测报告直连产线风控全闭环!AI报告审核神器IACheck,为现代化智能工厂注入硬核品质动力 2026/8/2 19:05:47

最新资讯

老幕布秒变智能:ESP8266+ESPHome绕过HA直连HomeKit
BGP与OSPF互引路由环路成因及华为防环配置
Qt 5.14.2离线安装包下载与国内镜像站使用指南
汇川Easy320 PLC通过网口转串口网关控制Modbus RTU设备实战解析
中兴B860AV3.1-M2刷安卓9.0:S905L3芯片底层解锁实战
AD5940阻抗开发板实战指南:精准测量生物与电化学阻抗

今日推荐

JavaWeb购物车系统实现:基于Session存储的完整工程示例
面向对象综合训练:从图书管理系统掌握封装、继承与多态
Lombok与JDK版本冲突引发NoSuchFieldError:根因排查与修复指南

本周热门

BrewUI:给Homebrew套上图形界面,让macOS软件包管理更简单
BrewUI:让Homebrew包管理变得可视化与高效
公式与文本对齐全攻略:从Word到LaTeX的实用技巧

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

算法日常・每日刷题--<归并排序>1

发布时间:2026/9/24 13:13:49
算法日常・每日刷题--<归并排序>1 912. 排序数组 - 力扣LeetCode912. 排序数组 - 给你一个整数数组 nums请你将该数组升序排列。你必须在 不使用任何内置函数 的情况下解决问题时间复杂度为 O(nlog(n))并且空间复杂度尽可能小。 示例 1输入nums [5,2,3,1]输出[1,2,3,5]解释数组排序后某些数字的位置没有改变例如2 和 3而其他数字的位置发生了改变例如1 和 5。示例 2输入nums [5,1,1,2,0,0]输出[0,0,1,1,2,5]解释请注意nums 的值不一定唯一。 提示 * 1 nums.length 5 * 104 * -5 * 104 nums[i] 5 * 104https://leetcode.cn/problems/sort-an-array/description/归并排序一、核心思想分治思想分把待排序数组不断对半拆分直到每个子序列只有1 个元素天然有序治归并将两个有序子数组合并成一个更大的有序数组递归重复最终合并得到完整有序数组。一句话总结先拆分分到最小单元再两两有序合并。[38,27,43,3,9,82,10] [38,27,43] [3,9,82,10] [38,27] [43] [3,9] [82,10] [38] [27] [3][9] [82][10][38][27] → [27,38] [27,38] [43] → [27,38,43] [3][9] → [3,9] [82][10] → [10,82] [3,9] [10,82] → [3,9,10,82] [27,38,43] [3,9,10,82] → [3,9,10,27,38,43,82]很像是二叉树的后序遍历而快排则是像二叉树的前序遍历题目描述题目要求给你一个整数数组nums请你将该数组升序排列。你必须在不使用任何内置排序函数的情况下解决问题时间复杂度要求 \(O(n\log n)\)空间复杂度尽可能小。关键合并两个有序数组合并逻辑是归并排序最重要的模块 输入两段有序区间[l, mid]、[mid1, r]开辟临时数组存放合并结果双指针分别指向两段有序区间起点比较两个指针指向元素把更小的值放入临时数组对应指针后移其中一段遍历完成后直接追加另一段剩余元素将临时有序数组覆盖回原数组对应区间。class Solution { public: vectorint temp; vectorint sortArray(vectorint nums) { int nnums.size(); temp.resize(n); mergesort(nums,0,n-1); return nums; } void mergesort(vectorint nums,int left,int right) { if(left right) return; int mid(leftright)/2; mergesort(nums,left,mid); mergesort(nums,mid1,right); int cur1left,cur2mid1,i0; while(cur1midcur2right) temp[i]nums[cur1]nums[cur2]?nums[cur1]:nums[cur2]; while(cur1mid) temp[i]nums[cur1]; while(cur2right) temp[i]nums[cur2]; for(int ileft;iright;i) { nums[i]temp[i-left]; } } };

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号