归并排序示例

public class MergeSortMain {public static void main(String[] args) {int[] arr = {5, 4, 6, 2, 3, 7, 9, 1, 8};sort(arr);print(arr);}static void sort(int[] arr) {sort(arr, 0, arr.length - 1);}/*** @param arr        数组* @param leftBound  左边界* @param rightBound 右边界*/static void sort(int[] arr, int leftBound, int rightBound) {if (leftBound == rightBound) {return;}// 获取右指针位置int rightPoint = leftBound + (rightBound - leftBound) / 2;// 左半部分排序sort(arr, leftBound, rightPoint);// 右半部分排序sort(arr, rightPoint + 1, rightBound);// 合并merge(arr, leftBound, rightPoint + 1, rightBound);}/*** @param arr        数组* @param leftPoint  左指针* @param rightPoint 右指针* @param rightBound 右边界*/static void merge(int[] arr, int leftPoint, int rightPoint, int rightBound) {// 创建一个临时数组int[] temp = new int[rightBound - leftPoint + 1];int mid = rightPoint - 1;int i = leftPoint;int j = rightPoint;// 临时数组指针位置int k = 0;// 这样子的循环条件出现, 比如left arr都小于right arr时, left指针移动完成跳出循环, right arr并将剩余数据插入临时数组while (i <= mid && j <= rightBound) {// 判断左边小于右边, 则放入临时数组if (arr[i] < arr[j]) {temp[k] = arr[i];k++;i++;} else {temp[k] = arr[j];k++;j++;}}while (i <= mid) {// 左边数组指针未移动完时temp[k] = arr[i];k++;i++;}while (j <= rightBound) {// 右边数组指针未移动完时temp[k] = arr[j];k++;j++;}for (int l = 0; l < temp.length; l++) {arr[leftPoint + l] = temp[l];}}static void print(int[] arr) {for (int i : arr) {System.out.print(i + " ");}System.out.println(" ");}
}

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

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

相关文章

windows监控txt写入_Windows的bug们

2020/9/26○Doriawinterwindows的锁屏界面我很喜欢&#xff0c;这个壁纸自动切换的模块叫windows聚焦&#xff0c;然而我某天开机时发现图片消失&#xff0c;变味了蓝色背景&#xff0c;如图&#xff1a;因为我的已经修好了&#xff0c;所以在网上找了一张一样的图&#xff0c;…

internet地址java表示

【README】 本文主要总结 internet地址相关知识&#xff0c;及相关的 java 类 &#xff1b; 0&#xff09;ip地址是什么 连接到internet的设备称为节点&#xff0c;计算机节点称为主机&#xff08;host&#xff09;&#xff0c;每个节点至少由一个唯一的数&#xff08;或数字…

微软也加入FB开放计算项目 发布交换机操作系统

微软3月10日宣布了一则震动技术业界的消息&#xff0c;它正式发布了基于Debian Linux的网络交换机操作系统。这款名为“SONiC”&#xff08;Software for Open Networking in the Cloud&#xff09;的软件以前仅供微软内部使用&#xff0c;主要运行在网络交换机上。 这条消息对…

Docker-Desktop储存路径更改

前言 Docker是一个非常好用的容器引擎, 使我们部署环境速度大幅度提升。但是windows版本的docker-desktop默认安装路径是C盘&#xff0c;这时候就有一个非常让人头疼的问题 -【C盘储存空间严重不足】。下面主要记录一下怎么解决这一个问题~ 原缓存路径 C:\Users${用户文件}\A…

深入解析String中的intern

转载自 深入解析String中的intern引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快&#xff0c;更节省内存&#xff0c;都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统…

URLConnection-URL连接

【README】 本文介绍了 URLConnection java类&#xff0c;通过 URLConnection 如何获取网络资源&#xff1b;本文还梳理了涉及网络编程的java类的进化过程&#xff1b;从 URL -> URLConnection -> HttpURLConnection 或 HttpClient ; URL与URI的介绍&#xff0c; refer2…

excel趋势线公式导出_如何用Excel进行预测分析?

【面试题】一个社交APP, 它的新增用户次日留存、7日留存、30日留存分别是52%、25%、14%。请模拟出来&#xff0c;每天如果日新增6万用户&#xff0c;那么第30天&#xff0c;它的日活数会达到多少&#xff1f;请使用Excel进行分析。【分析思路】第1日(次日)留存用户数第1日新增用…

ASP.NET Core 行军记 -----第一步(艰辛的 MVC Hello World)

现在ASP.NET Core还在不断成长、更新中&#xff0c;说不定到了明天又换了个模样&#xff0c;就如同一个小孩&#xff0c;从蹒跚学步&#xff0c;到奔向未来。 所以我们可以相应的去理解更新中所发生的变化&#xff0c;包容它、呵护它&#xff0c;而不是盲目的指责与批评&#x…

记录一下SpringCloud-Gateway使用lb动态路由遇到的坑

前言 前一段时间&#xff0c;学习springcloud-alibaba时候&#xff0c;学习到gateway组件与nacos注册中西一起使用时遇到了一个问题在此记录一下&#xff0c;避免以后遇到又做无用功。 问题 通过gateway配置路由时&#xff0c;uri参数使用lb://xxxx无法映射到对应的服务地址…

Java程序创建Kafka Topic,以及数据生产消费,常用的命令

转自&#xff1a; Java程序创建Kafka Topic&#xff0c;以及数据生产消费&#xff0c;常用的命令_Zyy_z_的博客-CSDN博客_java kafka创建topicKafka简介&#xff1a; Kafka是一个分布式发布——订阅消息传递系统。Kafka快速、可扩展且耐用。它保留主题中的消息源。生产者将数据…

c++ 凸包 分治算法_三维凸包

缘起众所周知&#xff0c;二维凸包可以使用 Graham 扫描 内解决.所以本文来学习一下三维空间中凸包的一种直观算法——增量算法(increment algorithm)分析有一条叫 Willy 的苹果虫一直快乐的居住在一个苹果中&#xff0c;直到有一天有一只仓鼠想吃这个苹果&#xff0c;Willy 自…

深度分析Java的ClassLoader机制(源码级别)

转载自 深度分析Java的ClassLoader机制&#xff08;源码级别&#xff09;Java中的所有类&#xff0c;必须被装载到jvm中才能运行&#xff0c;这个装载工作是由jvm中的类装载器完成的&#xff0c;类装载器所做的工作实质是把类文件从硬盘读取到内存中&#xff0c;JVM在加载类的时…

.NET跨平台之Sake和KoreBuild

最近在了解Asp.net Core 1.0&#xff08;也可称为Asp.net5\Asp.net vNext)的跨平台&#xff0c;发现了两个新的新东西&#xff1a;Sake和KoreBuild&#xff08;或者已经出了很久&#xff09;。 通过国内某度查询资料大部分都是复制黏贴来的&#xff0c;几乎没有详细的介绍。 只…

Ubuntu系统安装准备

前言 最初学习程序开发时&#xff0c;大多数都会教linux系统的基础用法&#xff0c;但是很少以linux为操作系统开发程序&#xff0c;因为windows系统的简单便利为人的提供优秀的操作基础&#xff0c;成为首选系统。 突然心血来找想使用linux操作系统作基础进行程序代码开发。 …

(转)Kafka 消费者 Java 实现

转自&#xff1a; Kafka 消费者 Java 实现 - 简书应用程序使用 KafkaConsumer向 Kafka 订阅 Topic 接收消息&#xff0c;首先理解 Kafka 中消费者&#xff08;consumer&#xff09;和消费者组&#xff08;consumer group...https://www.jianshu.com/p/1f9e18e926f6据原文作者&…

docker export_docker使用简介

一 docker服务端和客户端declare -x DOCKER_HOST"192.168.2.162export DOCKER_HOST192.168.2.162docker -H tcp://192.168.2.162:2375 images二 docker daemon配置cat /etc/sysconfig/dockerOPTIONS--selinux-enabled --log-driverjournald --signature-verificationfalse…

深度解析单例与序列化之间的爱恨情仇

转载自 深度解析单例与序列化之间的爱恨情仇本文将通过实例阅读Java源码的方式介绍序列化是如何破坏单例模式的&#xff0c;以及如何避免序列化对单例的破坏。单例模式&#xff0c;是设计模式中最简单的一种。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访…

Windows 10中国定制版完工!更专业

去年底&#xff0c;微软与中国电子科技网络信息安全有限公司成立了一个合资公司&#xff0c;该公司的主要任务是为中国政府和企业定制 Windows 10 系统。 现在&#xff0c;微软大中华区董事长兼CEO贺乐赋在接受财新网记者采访时表示&#xff0c;微软与中国电子科技集团公司&…

Spring [CVE-2022-22965]漏洞处理

问题描述 近期spring官方公布了漏洞 - [CVE-2022-22965] 参考地址&#xff1a; https://tanzu.vmware.com/security/cve-2022-22965 参考issues提到的问题答案开发人员回应&#xff1a; 可能是由于Springframework 3.x 早于 JDK9发布&#xff0c;甚至发布时还未完整的支持JDK…

kafak消费者从头开始消费(消费者组)

【README】 本文主要用于描述 kafka 消费者如何从头开始消费&#xff1b; 【1】从头开始消费 1&#xff09;从头开始消费&#xff0c;需要满足两个条件&#xff0c; 如下&#xff1a; 条件1&#xff0c; 使用一个全新的消费者组id&#xff1b;条件2&#xff0c;指定 auto.of…