排序:归并排序

目录

归并排序——有递归的:

基本思想:

思路分析: 

代码分析:  

划分区间思路:

代码思路分析: 

归并排序——有递归的:

基本思想:

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

将已有序的子序列合并,得到完全有序的序列;即先使 每个子序列内部 有序,再使每个子序列段 间 有序。若将两个有序表合并成一个有序表,称为二路归并。  

思路分析: 

而放到排序中,我们归并的前提是要左右区间有序,而对于一个无序的数组而言左右区间并不是有序的,而要将他变得有序,则可以采取递归的方法。

  • 那么,做法便成为了使用递归的方法,将序列区间连续的对半划分,直到不能划分位置,随后这些被划分的区间再进行排序组成一个有序的序列区间,随后再归并回去。
  • 而再这些被划分区间组成一个有序的序列区间其实也会用到归并的思想
  • 所以本质上就是大区间变成了小区间,数个小区间排列层有序的区间后和另一个相同等级的序列区间再度进行排序,直到变成有序的数组为止。 

代码分析:  

代码就是将大区间变小区间,然后小区间的元素进行尾插到新数组内排序,而后新数组的元素拷贝到原来的小区间内

然后小区间在和它同级的小区间进行相同的操作变成一个更大的有序的区间,然后再和其他更大的区间进行相同的操作,最后的最后变成一个有序的数组并拷贝回原来的数组空间 

划分区间思路:

代码思路分析: 


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《Kafka权威指南》读书笔记

《Kafka权威指南》第一、三、四、六章,是重点。可以多看看。 一、 Kafka的组成 kafka是一个发布与订阅消息系统消息:kafka的数据单元称为"消息"。可以把消息看成是数据库中的一个"数据行"。 消息的key:为key生成一个一…

鸿蒙开发组件之Image

Image组件加载图片方式有三种: 1、网络地址加载 直接Image(xxxx),添加上图片的网络地址就可以了。注意:真机、模拟题调试需要申请"ohos.permission.INTERNET"权限 Image(https://xxxxxxx) 2、PixelMap格式加载像素图 Image(PixelMapObjec…

【小沐学Python】Python实现语音识别(vosk)

文章目录 1、简介1.1 vosk简介1.2 vosk模型1.3 vosk服务 2、安装3、测试3.1 命令行测试3.2 代码测试 结语 1、简介 https://alphacephei.com/vosk/index.zh.html Vosk 是一个语音识别工具包。 1.1 vosk简介 支持二十种语言 - 中文,英语,印度英语&#…

Mac虚拟机CrossOver23破解版下载和许可证下载

CrossOver Mac Mac 和 Windows 系统之间的兼容工具。使 Mac 操作系统的用户可以运行 Windows 系统的应用,从办公软件、实用工具、游戏到设计软件, 您都可以在 Mac 程序和 Windows 程序之间随意切换。 系统要求 运行macOS的基于Intel或Apple Silicon 的…

【原创】【一类问题的通法】【真题+李6卷6+李4卷4(+李6卷5)分析】合同矩阵A B有PTAP=B,求可逆阵P的策略

【铺垫】二次型做的变换与相应二次型矩阵的对应:二次型f(x1,x2,x3)xTAx,g(y1,y2,y3)yTBy ①若f在可逆变换xPy下化为g,即P为可逆阵,有P…

【SpringBoot篇】5种类型参数传递json数据传参的操作

🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺普通参数🌺POJO参数🌺嵌套…

Java面试遇到的一些常见题

目录 1. Java语言有几种基本类型,分别是什么? 整数类型(Integer Types): 浮点类型(Floating-Point Types): 字符类型(Character Type): 布尔类…

Unity中Batching优化的GPU实例化(4)

文章目录 前言一、构建需要实例化的额外数据二、在顶点着色器,将实例化 ID 从 appdata 存入 v2f 传给片元着色器三、在片断着色器中访问具体的实例化变量三、使用代码修改Shader材质属性,实现GPU实例化后不同对象颜色不同的效果1、在C#测试脚本生成小板凳…

Redis 环境搭建2

文章目录 第2关:使用 Redis 第2关:使用 Redis 本文是接着上篇文章写的第二关代码,部分人再进入第二关时不会保留第一关的配置的环境,可以通过下面一句代码进行检验。 redis-cli -p 7001 -c如果进入到了redis界面就是有环境&…

Android 分享小结

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、微信 分享 三、 QQ 、QQ空间(Qz…

2024 年顶级的 Android 系统修复软件与方法

您是否正在寻找可以修复 PC 上 Android 操作系统的工具?这是我们精选的最好的 Android 系统修复软件! Android 是世界著名的智能手机操作系统。全世界有数百万人使用这个操作系统,这使得它安全可靠。然而,这仍然不能使它完美无缺…

STM32之SPI总线

一、SPI总线概述 1、SPI总线介绍 SPI是一种通信协议,它是摩托罗拉公司研发出来的一种通信协议,就有自己的特点(串行,并行,单工,半双工,全双工,同步异步)。它主要应用于音…

Kotlin Flow 操作符

前言 Kotlin 拥有函数式编程的能力,使用Kotlin开发,可以简化开发代码,层次清晰,利于阅读。 然而Kotlin拥有操作符很多,其中就包括了flow。Kotlin Flow 如此受欢迎大部分归功于其丰富、简洁的操作符,巧妙使…

【头歌系统数据库实验】实验8 SQL的复杂多表查询-2

目录 第1关:基于派生表查询每个队员解答中超过他平均memory的user_id及题目编号problem_id 第2关:用ANY/ALL实现查询2019级选手(user_id前4位为2019)满足比2020级其中一个选手注册时间早即可的选手 第3关:用聚集查询…

【MySQL】MySQL 在 Centos 7环境安装教程

文章目录 1.卸载不要的环境2.检查系统安装包3.获取mysql官方yum源4.安装mysql yum 源,对比前后yum源5.安装mysql服务6.查看配置文件和数据存储位置7.启动服务和查看启动服务8.登录9.配置my.cnf 1.卸载不要的环境 先检查是否有mariadb存在 ps ajx |grep mariadb如果…

【Linux】系统初识之冯诺依曼体系结构与操作系统

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.冯诺依曼体系结构 2.操作…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑电力-交通交互的配电网故障下电动汽车充电演化特性》

这个标题涉及到电力系统、交通系统和电动汽车充电的复杂主题。让我们逐步解读: 考虑电力-交通交互的配电网故障: 电力-交通交互: 指的是电力系统和交通系统之间相互影响、相互关联的关系。这可能涉及到电力需求对交通流量的影响,反…

爬虫解析-jsonpath (六)

jsonpath只能解析本地文件 jsonpath的使用: obj json.load(open(.json文件,r,encodingutf-8))place_name jsonpath.jsonpath(obj, json语法) 目录 1.安装jsonpath 2.Xpath和jsonpath的语法对比 练习:使用jsonpath解析JSON文件 3.使用jsonpath抓取…

C语言实现快速排序

完整代码&#xff1a; #include<stdio.h>//用第一个元素将待排序序列划分成左右两个部分&#xff0c;返回排序后low的位置&#xff0c;即枢轴的位置 int partition(int arr[],int low,int high){//让待排序序列中的第一个元素成为基准int pivotarr[low];//lowhigh代表一…

计算机科学与技术认识实习【报告】

一、实习目的 此次认识实习主要面对计算机科学与技术专业的同学&#xff0c;了解专业在未来的发展趋势&#xff0c;通过观看公司的介绍视频和技术发展情况招聘信息后的感想和学习体会等多种方式&#xff0c;使我们了解本专业相关领域的发展现状&#xff0c;让我们在校园内课堂上…