【分治——归并排序】排序数组的归并方法

news2024/9/20 21:39:32

在这里插入图片描述

目录

  • 1.前言
  • 2.题目简介
  • 3.求解思路
  • 4.示例代码

1.前言

今天简单展示一个归并排序解题,难度简单。

2.题目简介

题目链接:LINK
在这里插入图片描述

3.求解思路

在这里插入图片描述

4.示例代码

//归并排序
class Solution {
public:
    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 begin, int end)
    {
        if(begin >= end) return;

        //1.找中间点
        int mid = (begin + end) >> 1;
        //此时被划分为了两部分:[begin, mid] [mid+1, end]

        //2.递归
        mergeSort(nums, begin, mid);
        mergeSort(nums, mid + 1, end);

        //3.回归
        int cur1 = begin, cur2 = mid + 1, i = begin;
        while(cur1 <= mid && cur2 <= end)
        {
            tmp[i++] = nums[cur1] >= nums[cur2] ? nums[cur2++] : nums[cur1++];
        }
        while(cur1 <= mid) tmp[i++] = nums[cur1++];
        while(cur2 <= end) tmp[i++] = nums[cur2++];
        //拷回原来的数组
        for(int i = 0; i < end - begin + 1; i++)
        {
            nums[begin + i] = tmp[begin + i];
        }
    }
};

在这里插入图片描述


EOF

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

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

相关文章

【Web开发工具】基于Windows系统下的WebStorm安装教程

目录 安装WebStorm1.官网下载WebStorm2.选择安装位置3.关闭应用 下载并解压工具下载地址解压执行Done输入Code 安装WebStorm 1.官网下载WebStorm 我自己的网盘链接: https://pan.baidu.com/s/17PJu8Kf_fdX3gi588ubTqQ?pwd6666 2.选择安装位置 下一步下一步就行&#xff0c…

有手就会之使用Dify构建RAG聊天应用(基于私有知识库和搜索引擎)

之前我的文章里写的是通过langchain来构建RAG应用&#xff0c;对于很多人来说。langchain作为一个框架上手难度大&#xff0c;代码不够直观。但是通过dify你将学会可视化搭建工作流。 什么是dify&#xff1f; Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即…

如何判断B端真实需求?5大经验技巧

准确判断B端真实需求能确保软件开发项目紧贴用户实际需求&#xff0c;减少返工&#xff0c;加快开发速度&#xff0c;提升客户满意度和产品竞争力。如果没有采用有效的技巧和经验来判断B端的真实需求&#xff0c;可能会导致软件开发项目偏离客户实际需求&#xff0c;引发频繁的…

【数据分析预备】Numpy入门

Jupyter Notebook 是一个基于网页的交互式计算环境编写代码、运行代码、查看输出、可视化数据、分享报告文档按单元格运行代码可展示的信息格式更丰富&#xff08;支持Markdown和Latex)交互式运行环境 安装 cmd窗口 pip install notebook启动 jupyter notebook退出 CtrlC …

阿里巴巴alibaba商品采集API获取商品列表商品详情接口

在跨境电商和B2B贸易日益繁荣的今天&#xff0c;如何高效、准确地获取商品信息成为了商家们关注的焦点。阿里巴巴作为全球领先的B2B电商平台&#xff0c;凭借其庞大的商品数据库和强大的技术支持&#xff0c;为商家们提供了丰富的API接口服务&#xff0c;其中alibaba.item_get接…

第十三节:学习Springboot整合mybatis——完整篇(自学Spring boot 3.x的第三天)

大家好&#xff0c;今天记录下学习springboot的第三天。​网创有方 这节详细记录了如何使用springboot整合mybatis方法&#xff0c;并成功实现将请求信息插入本地的mysql数据库。 由于只是为了方便本地验证&#xff0c;实际项目是需要部署到服务器上去的&#xff0c;所以就采用…

MQ专题:消费幂等性

一、提要 1.1 通过本文将获得 消息投递的通用代码 非事务消息的投递事务消息的投递任意延迟消息的投递&#xff0c;不依赖于任何MQ上面这些投递都支持批量的方式投递失败自动重试的代码 幂等消费的通用代码消费失败&#xff0c;衰减式自动重试的通用代码 1.2本文涉及到的主要…

新一代网络研发利器——开物™,让用户每一行代码都贡献在核心创新

随着云计算、人工智能、大数据的快速发展&#xff0c;现有的IT系统越来越复杂&#xff0c;传统网络技术难以满足新的业务需求&#xff0c;DPU技术开始崭露头角&#xff0c;越来越多的企业与研究机构认识到高性能网络处理技术带来的巨大价值&#xff0c;并积极开展创新与实践&am…

985硕闭着眼都有15k以上的月薪

985 闭眼 今天在牛客上看到一篇直呼好家伙的帖子&#xff1a; 这位同学指出&#xff1a;论坛里个个 985 的硕士闭着眼睛都有 15k 以上的月薪&#xff0c;还天天嚷嚷着研究生白读了&#xff0c;天天嚷嚷着反向读研了 ... 通常这样的帖子&#xff0c;都会被评论区喷成筛子。 结果…

微积分复习笔记 Calculus Volume 1 - 1.3Trigonometric Functions

1.3 Trigonometric Functions - Calculus Volume 1 | OpenStax

ELK日志服务收集SpringBoot日志案例

第一步&#xff1a;准备docker-compose文件 首先准备 docker-compose.yaml 文件 version: "3" services:elasticsearch:image: elasticsearch:7.17.2container_name: elasticsearch-servernetworks:- hostenvironment:- "cluster.nameelasticsearch" #设…

NeRF原理学习

一个2020年的工作我现在才来学习并总结它的原理&#xff0c;颇有种“时过境迁”的感觉。这篇总结是基于NeRF原文 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 阅读理解后写的&#xff0c;作用是以后如果记不太清了可以回忆。 目的&应用 先说…

80.动态申请内存

目录 一.malloc函数 二.其他注意事项 三.视频教程 在定义变量的时候会在内存中申请空间。除了在定义变量的时候申请内存空间&#xff0c;也可以使用库函数动态申请内存&#xff0c; 一.malloc函数 作用&#xff1a;动态申请一块连续的任意尺寸的内存空间。 函数原型&…

【前端9】手风琴v1.0版本:使用插槽实现动态内容插入的Vue组件

【前端9】手风琴&#xff1a;使用插槽实现动态内容插入的Vue组件 写在最前面一、插槽的基本概念1.默认插槽2.具名插槽 二、实现一个折叠面板组件0.关键点和注意事项1.父组件 App.vue2.子组件 Collapse.vue总结 3.详细解读&#xff08;可以略过&#xff09;父组件子组件 三、小结…

通用后台管理系统实战演示(Vue3 + element-plus)汇总篇三

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Python任务编排和工作流管理库之prefect使用详解

概要 在数据工程和科学的世界中,任务编排和工作流管理变得越来越重要。随着数据处理任务的复杂性增加,开发人员需要一种可靠且易于使用的工具来设计、监控和管理这些任务。Prefect 是一个用于构建、监控和管理数据管道的 Python 库,它简化了工作流的创建和执行,同时提供了…

028、架构_高可用_主从原理

MySQL半同步复制概览 MySQL主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。主从复制的基本过程如下图所示: 主从复制的完成通过以下三个进程实现的主库 binary log dump 线程:当从库连接主库时,…

22. K8S及DevOps

22. K8S及DevOps 一. 章节简介二. DevOps1. 简介2. CICD三. Kubernetes1. [官网](https://kubernetes.io/zh-cn/)--------------------------------------------------------------------------------------------------------一. 章节简介 二. DevOps 1. 简介 2. CICD

【科研新手必备】如何高效、高质量、科学的科研?

文献下载网站—英文写作小工具—SCI选刊 1、文献下载网站 中国知网 sci-hub 大木虫学术导航 学术资源搜索 2、英文写作小工具 DeepL 学术短语库 SCI写作辅导材料 赛特新思 3、SCI选刊 Journal Finder SPRINGER NATURE

除了黑神话,探索3A游戏大作:不可错过的经典与录屏软件推荐

在游戏的天地里&#xff0c;3A 大作凭借其美轮美奂的画面、丰富多彩的内容以及意蕴深邃的剧情&#xff0c;俘获了无数玩家的倾心。除了广受瞩目的《黑神话&#xff1a;悟空》&#xff0c;还有诸多其他的 3A 游戏大作值得您去尝试。此类游戏不但在视觉与技术方面臻至行业的巅峰水…