八大排序--07归并排序

ops/2024/10/17 23:14:47/

假设数组 arr[]= {5,7,4,2,0,1,6},请通过插入排序的方式,实现从小到大排列:
方法:先拆分,再合并,并在合并过程中结束临时空间进行排序;

拆分:从待排序列中间位置拆开,数据分成左右两部分,继续进行拆分,直至数据拆分成一个一个的时候停止

完整代码:

package Java.start;import java.util.Arrays;public class MergeSort {
//归并排序public static void main(String[] args) {int[] arr= {5,7,4,2,0,1,6};merge_sort(arr, 0, arr.length-1);System.out.println(Arrays.toString(arr));}public static void merge_sort(int[] arr,int left,int right) {if(left==right) {return;//递归出口}else {int mid=(left+right)/2;merge_sort(arr,left,mid);//向左拆分merge_sort(arr, mid+1, right);//向右拆分merge(arr, left, right, mid);//合并}}public static void merge(int[] arr,int left,int right,int mid) {//记录两段的开始位置int s1=left;int s2=mid+1;int[] temp=new int[right-left+1];//定义临时空寂tempint index=0;//定义游标遍历的临时空间//判断s1和s2指向数据的大小,将其存入临时数据while(s1<=mid&&s2<=right) {if(arr[s1]<arr[s2]) {temp[index]=arr[s1];s1++;index++;}else {temp[index]=arr[s2];s2++;index++;}}while(s1<=mid) {//判断s1中是否有数据,若有则将其存入临时数组temp[index]=arr[s1];s1++;index++;}while(s2<=right) {//判断s2中是否有数据,若有则将其存入临时数组temp[index]=arr[s2];s2++;index++;}for(int j=0;j<temp.length;j++) {arr[left+j]=temp[j];}}}

结果:


http://www.ppmy.cn/ops/124279.html

相关文章

【Linux】C文件头文件数裁剪前58644个,裁剪后9373个

裁剪后可以访问网络和从Windows共享的文件夹&#xff1a; 纯C代码编译&#xff08;不包含打包&#xff09;时长比较&#xff1a;未裁剪前&#xff1a;大约5.5小时&#xff0c;裁剪后大约35分钟。 C文件和头文件数量比较&#xff08;目录里边实际还有tools和scripts目录&#xf…

uibot发送邮件:自动化邮件发送教程详解!

uibot发送邮件的操作指南&#xff1f;uibot发送邮件的两种方式&#xff1f; 在现代办公环境中&#xff0c;自动化流程的引入极大地提高了工作效率。uibot发送邮件功能成为了许多企业和个人实现邮件自动化发送的首选工具。AokSend将详细介绍如何使用uibot发送邮件。 uibot发送…

【论文#性能对比】Video coding with H.264/AVC: Tools, Performance, and Complexity

目录 摘要1.前言2.标准化视频编码方案的概念3. H.264/AVC 编码方案3.1 帧内预测3.2 运动补偿预测3.3 变换编码3.4 熵编码方案3.5 自适应去块滤波器3.6 错误鲁棒性和网络友好性 4.码率受限的编码器控制5. H.264/AVC 的配置文件和级别6.与先前标准的比较6.1 编码效率6.2 硬件复杂…

Django 后端数据传给前端

Step 1 创建一个数据库 Step 2 在Django中点击数据库连接 Step 3 连接成功 Step 4 settings中找DATABASES Step 5 将数据库挂上面 将数据库引擎和数据库名改成自己的 Step 6 在_init_.py中加上数据库的支持语句 import pymysql pymysql.install_as_MySQLdb() Step7 简单创建两…

c#代码介绍23种设计模式_16迭代器模式

目录 1、迭代器模式的介绍 2、迭代器模式的定义 3、迭代器模式的结构 4、代器模式角色组成 5、迭代器实现 6、迭代器模式的适用场景 7、迭代器模式的优缺点 8、.NET中迭代器模式的应用 9、实现思路 1、迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言…

鸿蒙 Next 实战: 环境搭建

前言 作为独立开发者&#xff0c;如果我们错过了传统移动 App&#xff0c;和后起小程序的红利&#xff0c;那万物互联 AI 的应用开发就得抓住了。 虽然个人上架应用平台难易都差不多&#xff0c;但是鸿蒙生态当前正需要广大开发者参与&#xff0c;一旦上架&#xff0c;相比其…

Git配置token免密登录

配置token免密登录 如果不用ssh免密登录&#xff0c;还有其他基于Token那得免密登录方法吗&#xff1f; 2021年开始&#xff0c;github就不能使用密码登录git了&#xff0c;需要使用token作为密码登录&#xff0c;需要自己在setting中创建。 那么每次都需要我手动输入token密…

0x11 科迈 RAS系统 Cookie验证越权漏洞

参考: 科迈 RAS系统 Cookie验证越权漏洞 | PeiQi文库 (wgpsec.org)免责声明 欢迎访问我的博客。以下内容仅供教育和信息用途: 合法性:我不支持或鼓励非法活动。请确保遵守法律法规。信息准确性:尽管我尽力提供准确的信息,但不保证其完全准确或适用。使用前请自行验证。风…