分治-归并-912.排序数组-力扣(LeetCode)

一、题目解析

1、将数组排升序

2、在不使用任何内置函数的情况下解决问题

二、算法原理

分治-归并

合并两个有序数组

1、双指针遍历两个合并数组
2、将比较后的较小值放到新开数组中
3、防止有指针未遍历完,特殊处理
4、将nums中的元素还原

三、代码示例

 vector<int> tmp;vector<int> sortArray(vector<int>& nums){tmp.resize(nums.size());mergeSort(nums,0,nums.size()-1);return nums;}void mergeSort(vector<int>& nums,int left,int right){//只有一个元素或者区间不存在直接返回if(left>=right) return;//1、选择中间点划分区间int mid = (left+right)>>1;//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 i = left;i<=right;i++)nums[i] = tmp[i-left];}

这里将tmp数组全局设置,目的是为了减少每次开辟所浪费的时间

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92653.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全初学者学习心得

看到你对网络安全学习的兴趣&#xff0c;我感到非常振奋&#xff01;这个领域既充满挑战又回报丰厚&#xff0c;作为初学者&#xff0c;理清学习内容和方向确实至关重要。下面我将结合多年的行业观察和指导经验&#xff0c;为你详细拆解网络安全初学者的学习内容并分享一些核心…

防火墙笔记优化版

一、防火墙的核心定义防火墙是一种基于预设安全策略&#xff0c;用于隔离内网与外网、控制网络流量的安全系统&#xff08;可分为软件系统或硬件系统&#xff09;。其核心作用包括&#xff1a;流量隔离&#xff1a;物理或逻辑分隔内网、外网及 DMZ 区域&#xff08;DMZ 为内网与…

vue3前端项目cursor rule

cursor rule是什么&#xff0c;以及怎么定义&#xff0c;看这个文章&#xff1a; cursor中定义cursor rules_cursor rules如何编写-CSDN博客 针对现有一个vue3的前端项目&#xff0c;写了一份cursor rule&#xff0c;可以作为参考&#xff0c;内容如下&#xff08;仅作为参考&…

基于51单片机红外遥控定时开关智能家电插座设计

1. 功能介绍 本设计是一款基于 STC8C52 单片机 的智能家电插座系统&#xff0c;集 红外遥控控制、定时开关控制、自动与手动模式切换、掉电数据保存、液晶显示、蜂鸣器提示 于一体&#xff0c;能够方便用户对家用电器进行精准的定时控制与远程操作。系统广泛适用于家用电器、办…

下一代防火墙组网方案

知识回顾&#xff1a;1.传统防火墙包括包过滤防火墙、应用网关防火墙、状态检测防火墙。2.包过滤防火墙工作在3、4层。3.包过滤防火墙特点&#xff1a;4.应用网关防火墙主要作用&#xff1a;①截取用户初始化连接请求&#xff0c;对用户进行认证&#xff1b;②通过ALG能让多通道…

WEB开发-第二十七天(PHP篇)

DW PHPStorm PhpStudy Navicat Premium DW : HTML&JS&CSS开发 PHPStorm : 专业PHP开发IDE PhpStudy &#xff1a;Apache MYSQL环境 Navicat Premium: 全能数据库管理工 变量覆盖安全&#xff1a; $GLOBALS&#xff1a;这种全局变量用于在PHP脚本中的任意位置访…

Lwip深度阅读-网络架构

LWIP网络协议栈详细介绍 本文的内容基本基于野火的LWIP手册&#xff0c;和LWIP源码撰写。 网络协议栈概述 从图片可以看出&#xff0c;网络协议栈采用分层架构&#xff0c;每一层都有特定的功能和协议。 TCP/IP协议分层模型数据封装过程MAC数据包 我使用wireShark抓包的时候&am…

嵌入式系统学习Day16(C语言中的位运算)

位运算二进制位的运算嵌入式:通过位运算 控制 硬件运算: 运算规则 & 与 一假则假 | 或 一真则真 ~ 非 真假相对 ^ 异或 相同为假 不同为真 << 左移 表示二进制位的移动 >> 右移 eg:int a 0x55; int b 0x33;0101 0101 //0x55 &am…

Endnote下载,导入曼大 harvard_manchester格式

下载endnote 并激活中国农业科技文献与信息服务平台&#xff0c;点击下载 下载harvard_manchester 格式 Harvard Manchester - Referencing guide at the University of Manchester - Subject guides at University of Manchester 双击打开第二步下载的安装包&#xff08;使用…

【Docker进阶实战】从多容器编排到集群部署

Docker进阶实战&#xff1a;从多容器编排到集群部署 当你已经熟悉Docker的基本操作后&#xff0c;面对的下一个挑战往往是&#xff1a;如何管理多个容器的协作&#xff1f;如何实现容器的集群化部署与扩展&#xff1f;如何保证服务的高可用&#xff1f; 一、Docker Compose&…

【Linux文件操作】文件操作系统调用

目录 一、文件创建&#xff08;creat 系统调用&#xff09;​ 1.1 函数原型 1.2 参数说明​ 1.3 返回值​ 1.4 使用示例 二、文件打开&#xff08;open 系统调用&#xff09;​ 2.1 函数原型 2.2 参数说明​ 2.3 返回值​ 2.4 使用示例 三、文件读写&#xff08;read 和 write …

FreeRTOS源码分析六:vTaskDelay vs xTaskDelayUntil任务延时

系列文章目录 FreeRTOS源码分析一&#xff1a;task创建&#xff08;RISCV架构&#xff09; FreeRTOS源码分析二&#xff1a;task启动&#xff08;RISCV架构&#xff09; FreeRTOS源码分析三&#xff1a;列表数据结构 FreeRTOS源码分析四&#xff1a;时钟中断处理响应流程 Free…

Linux学习-应用软件编程(fread/fwrite,流定义相关接口)

freadsize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 功能按块从文件读取数据&#xff0c;从文件中读 nmemb 个、每个 size 字节的元素&#xff0c;存入 ptr 指向的内存。参数- ptr &#xff1a;存储读取数据的内存首地址&#xff08;需提前分配足够…

IP分片(IP Fragmentation)

目录 一、核心概念:MTU与分片的必要性 二、IP分片的关键字段(IPv4头部) 三、分片与重组流程 1. 分片过程(发送端或中间路由器) 2. 重组过程(接收端) 四、IPv4与IPv6分片的差异 五、分片的潜在问题与风险 六、总结 一、传输效率降低,带宽开销增加 二、可靠性降低,数据丢…

高并发内存池 内存释放回收(6)

文章目录前言一、threadcache回收内存二、centralcache回收内存三、pagecache回收内存总结前言 Hello&#xff0c;我们继续乘胜追击   本篇难度较大&#xff0c;大家要好好学一下 一、threadcache回收内存 当某个线程申请的对象不用了&#xff0c;可以将其释放给 thread cac…

2438. 二的幂数组中查询范围内的乘积

2438. 二的幂数组中查询范围内的乘积 初始理解题目 首先&#xff0c;我们需要清楚地理解题目在说什么。题目给出一个正整数 n&#xff0c;要求我们构造一个数组 powers&#xff0c;这个数组满足以下条件&#xff1a; 元素性质​&#xff1a;数组中的每个元素都是 2 的幂。即…

【PyTorch学习笔记 - 01】 Tensors(张量)

最近项目需要优化一下目标检测网络&#xff0c;在这个过程中发现还是得增加对框架底层的掌握才可行。于是准备对pytorch的一些基本概念做一些再理解。参考PyTorch的wiki&#xff0c;对自己的学习过程做个记录。 Tensors 是一种特殊的数据结构&#xff0c;与数组和矩阵非常相似…

【C/C++】(struct test*)0->b 讲解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、什么是结构体成员的偏移量&#xff1f; 二、为什么需要计算偏移量&#xff1f; 三、如何计算偏移量&#xff1f; 四、总结 一、什么是结构体成员的偏移量&#…

使用Pytest进行接口自动化测试(三)

&#xff08;一&#xff09;YAML 之前在项目中&#xff0c;我们也是用过YAML来做配置文件&#xff0c;他用于以人类可读的形式存储信息&#xff0c; 特点: 一种简易的可读语言&#xff0c;用于人和计算机交换数据 通常用来存储配置信息 跟python类似&…

算法训练营day46 647. 回文子串、516.最长回文子序列、动态规划总结篇

今天是动态规划的最后一篇内容了&#xff0c;本篇主要是针对回文字符串这种“与众不同”的递推规律来进行讲解 647. 回文子串 统计并返回这个字符串中 回文子串 的数目 暴力解法 两层for循环&#xff0c;遍历区间起始位置和终止位置&#xff0c;然后还需要一层遍历判断这个区…