归并排序

 参考链接

排序算法:归并排序【图解+代码】_哔哩哔哩_bilibili

#include <stdio.h>
#include <stdlib.h>// 合并
void merge(int arr[], int tempArr[], int left, int mid, int right)
{// 标记左半区第一个未排序的元素int l_pos = left;// 标记右半区第一个未排序的元素int r_pos = mid + 1;// 临时数组元素的下标int pos = left;// 合并while (l_pos <= mid && r_pos <= right){if (arr[l_pos] < arr[r_pos])  // 左半区第一个剩余元素更小tempArr[pos++] = arr[l_pos++];else  // 右半区第一个剩余元素更小tempArr[pos++] = arr[r_pos++];}// 合并左半区剩余的元素while (l_pos <= mid)tempArr[pos++] = arr[l_pos++];// 合并右半区剩余的元素while (r_pos <= right)tempArr[pos++] = arr[r_pos++];// 把临时数组中合并后的元素复制回原来的数组while (left <= right){arr[left] = tempArr[left];left++;}
}// 归并排序
void msort(int arr[], int tempArr[], int left, int right)
{// 如果只有一个元素,那么不需要继续划分// 只有一个元素的区域,本生就是有序的,只需要被归并即可if (left < right){// 找中间点int mid = (left + right) / 2;// 递归划分左半区msort(arr, tempArr, left, mid);// 递归划分右半区msort(arr, tempArr, mid + 1, right);// 合并已经排序的部分merge(arr, tempArr, left, mid, right);}
}// 归并排序入口
void merge_sort(int arr[], int n)
{// 分配一个辅助数组int tempArr[n];// 调用实际的归并排序msort(arr, tempArr, 0, n - 1);
}void print_arr(int *arr,int n)
{for(int i = 0 ; i < n ; i++){printf("%d ",arr[i]);}printf("\n");
}
int main()
{int arr[] = {9,5,2,7,12,4,3,1,11};int n = 9;print_arr(arr,n);merge_sort(arr,n);print_arr(arr,n);return 0;
}

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

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

相关文章

中国制造2035任重道远前途光明wordpress外贸独立站模板

生物能源wordpress外贸公司模板 生物能源wordpress外贸公司模板&#xff0c;生物能源、生物化工行业外贸公司网站模板。 https://www.jianzhanpress.com/?p3649 汽车配件wordpress外贸网站模板 汽车配件wordpress外贸网站模板&#xff0c;汽车零配件外贸公司自建站外贸英文…

2023年甘肃省职业院校技能大赛高职组“信息安全管理与评估”(赛项样卷A)

信息安全管理与评估 第一阶段 网络平台搭建与设备安全防护 目 录 第一阶段竞赛项目试题 3 介绍 3 所需的设备、机械、装置和材料 3 评分方案 3 注意事项 3 项目和任务描述 3 1.网络拓扑图 3 2.IP地址规划表 4 工作任务 5 任务1&#xff1a;网络平台搭建 6 任务2&#xff1a;网…

基于单片机的储油罐液位无线监测系统

摘要: 本设计通过无线通信技术为油田储油罐设计了一款液位测量装置,以STC89C52 单片机为中心控制器,采用超声波测距模块HC-SR04 作为液位测量传感器,选用nRF24L01 无线通信模块对采集到的数据进行实时发送与接收,然后将接收到的数据实时处理后传送到上位机进行显示,达到液…

大创项目技术总结(复试准备)

&#xff08;一&#xff09;项目特色 &#xff08;1&#xff09;AI助力阿尔兹海默症的“老药新用”&#xff1a;“老药新用”目前已成为现在的研究趋势。在我们的项目当中我们使用了LDA文本主题模型的机器学习方法来对相关论文文本数据进行文本挖掘&#xff0c;并使用挖掘结果…

安卓部分手机使用webview加载链接后白屏(Android低版本会出现的问题)

前言 大爷&#xff1a;小伙我这手机怎么打开你们呢这个是白屏什么都不显示。 大娘&#xff1a;小伙我这也是打开你们呢这功能&#xff0c;就是一个白屏什么也没有&#xff0c;你们呢的应用不会有病毒吧。 小伙&#xff1a;我的手机也正常&#xff1b; 同事&#xff1a;我的也正…

【数据结构】堆排序

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解堆排序&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 堆的概念二. 堆排序&#xff08;以升序为例&#xff09;三. 代码 一. 堆的概念 如果有一个…

rust入门(1)创建项目

安装 vscode 安装插件 rust-analyzerNative Debug vscode 配置自动格式化代码 settings.json{"editor.defaultFoldingRangeProvider": null,"[rust]": {"editor.defaultFormatter": "rust-lang.rust-analyzer", // Makes the magi…

3. 在Go语言项目中使用Zap日志库

文章目录 一、介绍二、 默认的Go Logger1. 实现Go Logger2. 设置Logger3. 使用Logger4. Logger的运行5. Go Logger的优势和劣势 三、Uber-go Zap1. 为什么选择Uber-go zap2. 安装3. 配置Zap Logger4. 定制logger4.1 将日志写入文件而不是终端4.2 将JSON Encoder更改为普通的Log…

GlusterFS性能调优

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 相关文章&#xff1a; 分布式存储——GlusterFS 关于GlusterFS的卷 GlusterFS—新手陷阱 GlusterFS常用命令集 GlusterFS系…

时间序列-AR MA ARIMA

一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi​ &#xff0c;常常会使用统计方法如最小二乘法、信息准则&#xff08;如AIC、BIC&#xf…

ChatGPT介绍

ChatGPT概述 ChatGPT是一种前沿的大型语言模型&#xff08;Large Language Model, LLM&#xff09;&#xff0c;由人工智能研究组织OpenAI研发并推出。它基于Transformer架构&#xff0c;这是一种在自然语言处理&#xff08;NLP&#xff09;领域取得突破的深度学习方法。通过在…

testvue-common

1bus.js import Vue from vue;// 使用 Event Bus const bus new Vue();export default bus; 2directives.js import Vue from vue;// v-dialogDrag: 弹窗拖拽属性 Vue.directive(dialogDrag, {bind(el, binding, vnode, oldVnode) {const dialogHeaderEl el.querySelect…

安全先行,合规的内外网文件摆渡要重点关注什么?

内外网隔离在政府、军工部门、科研单位等已成为很常见的网络安全建设措施&#xff0c;内外网隔离是一种网络安全措施&#xff0c;用于保护内部网络免受外部网络的攻击和威胁。 内外网隔离的目的在于限制内外网之间的通信和数据交换&#xff0c;但网络隔离后&#xff0c;仍有数据…

JDK8 stream toMap方法介绍

JDK8 List转Map方法&#xff0c;有下3种方法。 toMap(keyMapper, valueMapper); toMap(keyMapper, valueMapper, BinaryOperator<U> mergeFunction); toMap(keyMapper, valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier);keyMapper&a…

2024年(第十届)全国大学生统计建模大赛选题参考(一)

本届大赛主题为“大数据与人工智能时代的统计研究”&#xff0c;参赛队围绕主题自拟题目撰写论文。 1. 大数据分析与处理 研究思路 数据收集&#xff1a;首先确定数据来源&#xff0c;例如社交媒体、企业数据库或公开数据集&#xff0c;并使用爬虫技术或API收集数据。数据预…

少儿编程机器人技术开发公司的创新之路

行业背景&#xff0c;国家政策利好 随着科技的不断发展&#xff0c;少儿编程机器人技术作为一种新兴的教育方式逐渐受到人们的关注。这项技术将编程与机器人技术相结合&#xff0c;通过互动性强、趣味性高的方式&#xff0c;帮助儿童学习编程知识&#xff0c;培养逻辑思维和创…

springboot 下载 Excel 文件的 Controller 层案例

环境 pom.xml 中 springboot版本&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version></parent>Excel 文件依赖&#xff1a; &l…

大模型产业落地,安全运营能否迎来“自动驾驶”时刻?

科技云报道原创。 通过一段文字描述&#xff0c;就能生成60秒堪比大片的视频&#xff0c;来自大模型Sora的出色表现&#xff0c;让全球都为之震撼。 无论是ChatGPT还是Sora&#xff0c;都只是大模型走出实验室的第一步&#xff0c;大模型如何在产业中落地&#xff0c;为具体的…

华为CSS堆叠技术介绍与实现

厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OCP\CKA\K8S\ CISP\CISSP\PMP\ ​ 什么是CSS&#xff1f; CSS交换机系统CSS&#xff08;Cluster Switch System&#xff09;&am…

【解决(几乎)任何机器学习问题】:交叉验证

在上⼀章中&#xff0c;我们没有建⽴任何模型。原因很简单&#xff0c;在创建任何⼀种机器学习模型之前&#xff0c;我们必须知道什么是交叉检验&#xff0c;以及如何根据数据集选择最佳交叉检验数据集。 那么&#xff0c;什么是 交叉检验 &#xff0c;我们为什么要关注它&…