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

【归并排序】排序数组(medium)

排序数组(medium)

  • 题⽬描述:
  • 解法(归并排序):
    • 算法思路:
  • 算法代码:

题⽬链接:912. 排序数组

题⽬描述:

给你⼀个整数数组 nums,请你将该数组升序排列。
⽰例 1:
输⼊:nums = [5,2,3,1]
输出:[1,2,3,5]
⽰例 2:
输⼊:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]

解法(归并排序):

在这里插入图片描述

算法思路:

归并排序的流程充分的体现了「分⽽治之」的思想,⼤体过程分为两步:
◦ 分:将数组⼀分为⼆为两部分,⼀直分解到数组的⻓度为 1 ,使整个数组的排序过程被分为「左半部分排序」 + 「右半部分排序」;
◦ 治:将两个较短的「有序数组合并成⼀个⻓的有序数组」,⼀直合并到最初的⻓度。

算法代码:

class Solution{int[] tmp;public int[] sortArray(int[] nums) {tmp = new int[nums.length];mergeSort(nums, 0, nums.length - 1);return nums;}public void mergeSort(int[] nums, int left, int right){if(left >= right) return;// 1. 根据中间点划分区间int mid = (left + right) / 2;// [left, mid] [mid + 1, right]// 2. 先把左右区间排个序mergeSort(nums, left, mid);mergeSort(nums, mid + 1, right);// 3. 合并两个有序数组int cur1 = left, cur2 = mid + 1, i = 0;while(cur1 <= mid && cur2 <= right)tmp[i++] = nums[cur1] <= nums[cur2] ? nums[cur1++] : nums[cur2++];// 处理没有遍历完的数组while(cur1 <= mid) tmp[i++] = nums[cur1++];while(cur2 <= right) tmp[i++] = nums[cur2++];// 4. 还原for(int j = left; j <= right; j++) nums[j] = tmp[j - left];}
}
http://www.lryc.cn/news/602246.html

相关文章:

  • Rust/Tauri 优秀开源项目推荐
  • C/C++ 调用lua脚本,lua脚本调用另一个lua脚本
  • 最新的前端技术和趋势(2025)
  • Maven中的bom和父依赖
  • Nginx HTTP 反向代理负载均衡实验
  • YOLO11 改进、魔改|低分辨率自注意力机制LRSA ,提取全局上下文建模与局部细节,提升小目标、密集小目标的检测能力
  • 免费 SSL 证书申请简明教程,让网站实现 HTTPS 访问
  • ADAS测试:如何用自动化手段提升VV效率
  • 【CDA干货】金融超市电商App经营数据分析案例
  • unbuntn 22.04 coreutils文件系统故障
  • GaussDB as的用法
  • 亚马逊广告关键词优化:如何精准定位目标客户
  • MyBatis中#{}与${}的实战避坑指南
  • 性能测试-技术指标的含义和计算
  • Leetcode_242.有效的字母异位词
  • Apache Commons VFS:Java内存虚拟文件系统,屏蔽不同IO细节
  • python入门篇12-虚拟环境conda的安装与使用
  • 深入Go并发编程:Channel、Goroutine与Select的协同艺术
  • 博士申请 | 荷兰阿姆斯特丹大学 招收计算机视觉(CV)方向 全奖博士生
  • 达梦有多少个模式
  • 亚马逊地址关联暴雷:新算法下的账号安全保卫战
  • 四、计算机组成原理——第6章:总线
  • 基于Hadoop3.3.4+Flink1.17.0+FlinkCDC3.0.0+Iceberg1.5.0整合,实现数仓实时同步mysql数据
  • [VLDB 2025]面向Flink集群巡检的交叉对比学习异常检测
  • SVN与GIT的区别,分别使用与哪些管理场景?
  • Go-Elasticsearch Typed Client查询请求的两种写法强类型 Request 与 Raw JSON
  • 正则表达式 速查速记
  • 10、Docker Compose 安装 MySQL
  • flink yarn 问题排查
  • 同态滤波算法详解:基于频域变换的光照不均匀校正