归并排序+思路分析

思路分析

在这里插入图片描述
在这里插入图片描述

代码实现

package com.atguigu.sort;import java.util.Arrays;/*** @创建人 wdl* @创建时间 2021/3/22* @描述*/
public class MergeSort {public static void main(String[] args) {int arr[]={8,4,5,7,1,3,6,2};int temp[]=new int[arr.length];mergeSort(arr,0,arr.length-1,temp);System.out.println("归并排序后="+ Arrays.toString(arr));}//    分+和的方法public static void mergeSort(int[] arr,int left,int right,int[] temp){if(left<right){int mid=(left+right)/2;//中间索引//向左递归进行分解mergeSort(arr,left,mid,temp);//向右递归进行分解mergeSort(arr,mid+1,right,temp);//到合并merge(arr,left,mid,right,temp);}}//合并方法/**** @param arr 排序的原始数组* @param left 左边有序序列的初始序列* @param mid 中间索引* @param right 右边索引* @param temp 做中转的数组*/public static void merge(int[] arr,int left,int mid,int right,int[] temp){
//        System.out.println("***");int i=left;//初始化i,左边有序序列的初始索引int j=mid+1;//初始化j,右边有序序列的初始索引int t=0;//指向temp数组的当前索引//(一)//先把左右两边(有序)的数据按照规则填充到temp数组//直到左右两边的有序序列,有一边处理完毕为止while(i<=mid&&j<=right){//继续//如果左边的有序序列的当前元素,小于等于右边有序序列的当前元素//即将左边的当前元素,填充到temp数组//然后t++,i++if(arr[i]<=arr[j]){temp[t]=arr[i];t++;i++;}else {//反之,将右边有序序列的当前元素,填充到temp数组temp[t]=arr[j];t++;j++;}}//(二)//把有剩余数据的一遍的数据一次全部填充到tempwhile(i<=mid){//左边的有序序列还有剩余的元素,就全部填充到temptemp[t]=arr[i];t++;i++;}while(j<=right){//右边的有序序列还有剩余的元素,就全部填充到temptemp[t]=arr[j];t++;j++;}//(三)//将temp数组的元素拷贝到arr//注意,并不是每次都拷贝所有t=0;int tempLeft=left;////第一次合并tempLeft=0,right=1//tempLeft=2,right=3//tl=0,ti=3//最后一次tempLeft=0 right=7
//        System.out.println("tempLeft="+tempLeft+"right="+right);while (tempLeft<=right){arr[tempLeft]=temp[t];t++;tempLeft++;}}}

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

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

相关文章

常数除以0的极限是什么_【极限】第四节 极限运算法则

定理 例题 极限运算法则就像加减乘除四则运算一样&#xff0c;是一种计算规则&#xff0c;那么极限也有属于它自己的一套计算规则。 极限运算法则的常用定理 定理1 两个无穷小的和是无穷小 有限个无穷小之和也是无穷小 定理2 有界函数与无穷小的乘积是无穷小 常数与无穷小的乘积…

Visual Studio 2017将于3月7日发布

继最近一连串候选发布版本之后&#xff0c;微软已经开始针对正式发布Visual Studio 2017做最后准备工作。微软已经宣布2017年3月7日会是VS2017官方发布时间。第一款VS软件问世于1997年&#xff0c;本次发布标志着产品20周年&#xff0c;这些年里包括了Visual J、Visual FoxPro、…

SQL Server 急救包(First Responder Kit)入门教程

如果你的SQL Server数据库运行起来十分缓慢甚至逐渐停止了&#xff0c;恰巧又赶上了你的数据库管理员在休假&#xff0c;你又不知道该如何是好&#xff0c;那么这篇文章会帮助你从学习使用SQL Server急救包&#xff08;SQL Server First Responder Kit&#xff09;开始解决问题…

IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法

转载自 IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法 最近在测试兼容性问题的时候发现&#xff0c;使用Ajax的GET请求向后台获取响应结果时&#xff0c;如果是IE8浏览器&#xff0c;第一次发送请求时会得到正常的返回结果&#xff0c;然后当再去发送相同请求访…

基数排序+推导过程

图解 代码实现 package com.atguigu.sort;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/22* 描述*/ public class RadixSort {public static void main(String[] args) {//53, 3, 542, 748, 14, 214int arr[] {53, 3, 542, 748, 14, 214};radixSort(arr);}//基…

Xamarin的坑 - 绑定(一) - 拿微信iOS SDK 简单说起

编者语&#xff1a;Xamarin 并入微软快一年了&#xff0c;在国内推广还是慢&#xff0c;主要有两个方面&#xff0c;Xamarin在国内的本地化不足真正在国内的解决方案基本上没有&#xff0c;第二就是和本土的一些主要SDK接入案例基本上也没有。上述原因令不少企业放弃使用这个很…

二分查找+思路分析

思路分析 代码实现 package com.atguigu.search;/*** 创建人 wdl* 创建时间 2021/3/23* 描述*/ //注意&#xff1a;使用二分查找的前提是&#xff0c;该数组是有序的 public class BinarySearch {public static void main(String[] args) {int arr[]{1,8,10,89,1000,1234};int…

SQLServer On Linux Package List on CentOS

问题引出 “鸟儿啊&#xff0c;到底SQLServer on Linux肚里装了多少东西&#xff0c;在我们的CentOS系统安装了哪些物理文件呢&#xff1f;”&#xff0c;老鸟这天火急火燎的问道。“这个啊&#xff1f;让本鸟帮你一探究竟。”&#xff0c;菜鸟耐心回答道。 问题分析 菜鸟一边想…

开发环境 Minio 添加桶的操作流程-页面操作

命令操作 d开发环境 Minio 添加桶的操作流程_摇曳的精灵的博客-CSDN博客_minio创建桶 页面操作

冬至快乐

男生关注会更帅&#xff0c;女生关注会更美&#xff01;冬至冬至到&#xff0c;吃水饺&#xff0c;颗颗都有年味道。头常挠&#xff0c;口常笑&#xff0c;睿智快乐常围绕。摇摇头&#xff0c;晃晃脑&#xff0c;轻松健康直到腰。扭扭臂&#xff0c;捏捏脚&#xff0c;健康到底…

介绍Portable PDB

为了调试编译的应用程序&#xff0c;有必要将IL代码或二进制的机器代码与源代码行进行匹配。虽然数据可以嵌入在应用程序中&#xff0c;但这会显著增加EXE或DLL文件的大小。取而代之的是&#xff0c;通常会使用单独的“symbols”文件。在Windows平台上&#xff0c;这被称为PDB或…

RedisGeo实现增删改查 java计算指定坐标最近的距离并排序

利用Redis的Geo功能实现查找附近的位 - 云社区 - 腾讯云 package com.easy.hotel.pms.util;import com.easy.hotel.common.data.tenant.TenantContextHolder; import com.easy.hotel.pms.mapper.CommunityMapper; import com.easy.hotel.pms.service.impl.CommunityServiceImpl…

没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))

今天在开发指纹识别的项目时候&#xff0c;出现了个问题&#xff0c;这个问题之前也没有见过&#xff0c;所以无从下手&#xff0c;只能从网上找解决方法&#xff0c;找了半天说要注册com组件啥的&#xff0c;我老是注册不成功&#xff0c;后来瞎捣鼓终于解决了&#xff0c;原因…

插值查找+代码实现+注意事项

图解 代码实现 package com.atguigu.search;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/23* 描述*/ public class InsertValueSearch {public static void main(String[] args) {int[] arrnew int[100];for (int i 0; i < 100; i) {arr[i]i1;}// S…

SQL Server on Linux的文件和目录结构

问题引入 “鸟儿啊&#xff0c;我记得你写过一篇《SQLServer On Linux Package List on CentOS》的文章&#xff0c;从这篇文章&#xff0c;我们很清楚的知道了SQL Server on Linux包含有哪些必要的包。那么&#xff0c;我们怎么知道SQL Server on Linux到底包含哪些重要的文件…

3级调度 fpga_FPGA的软核、硬核、固核

“核”现在的FPGA设计&#xff0c;规模巨大而且功能复杂&#xff0c;因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是&#xff1a;对于较为通用的部分可以重用现有的功能模块&#xff0c;而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在…

斐波那契查找+思路分析

图解 代码实现 package com.atguigu.search;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/23* 描述*/ public class FibonacciSearch {public static int maxSize 20;public static void main(String[] args) {int[] arr {1, 8, 10, 89, 1000, 1234};System.o…

OSS.Social微信项目标准库介绍

经过本周的努力&#xff0c;昨晚终于完成OSS.Social微信项目的标准库支持&#xff0c;当前项目你已经可以同时在.net framework和.net core 中进行调用&#xff0c;调用方法也发生了部分变化&#xff0c;这里我简单分享下&#xff0c;主要包含下边几个部分&#xff1a; 移植后…

ssh(Spring+Spring mvc+hibernate)简单增删改查案例

最近和spring mvc干上了&#xff0c;各种奇葩问题&#xff0c;各种解决。。。现在想想这历程还挺艰辛的&#xff0c;好了&#xff0c;不在这墨迹了&#xff0c;我们进入正题。 据说&#xff0c;现在Springmvc很流行&#xff0c;既然很流行就搞搞它&#xff0c;看看是个什么鬼&…