二路归并排序的算法设计和复杂度分析and周记

数据结构实验报告

实验目的:

通过本次实验,了解算法复杂度的分析方法,掌握递归算法时间复杂度的递推计算过程。

实验内容

二路归并排序的算法设计和复杂度分析

实验过程

1.算法设计

第一步,首先要将数组进行划分,假设等待排序的数组是A[SIZE],我们每次从数组的中间开始划分。

1).假设等待划分的数组是A{high …low} (是A中的一小段),划分点是它的中点,mid=(low+high)/2

2).如果数组段只剩下一个元素,比如A[5…5],划分出来也是(5+5)/2=5,A[5…5]也是它本身。

3).如果数组段是奇数项。比如A[3…5],(3+5)/2=4,划分为了A[3…4],A[5…5]

4).如果数组段是偶数段,比如A[2...5],(2+5)/2=3(因为是int),划分为了A[2,3],A[4…5],均分

第二步,划分必定是一递归的操作,因此设计一个类似于二叉树遍历的递归代码。

1).函数名是mergeSort(A[],int low, int high),每次对A[low,high]进行划分,划分为A[low…mid],A[mid+1,high],然后再对这两段数组进行递归的划分。

2).划分到单一元素的时候,进行合并操作

第三步,合并操作

2.程序清单

#include<stdio.h>
#include<malloc.h>
void disp(int a[],int n){
	int i;
	for(i=0;i<n;i++)
		printf("%d",a[i]);
	printf("\n");
}
void Merge(int a[],int low,int mid,int high){
	int * tmpa;
	int i=low,j=mid+1,k=0;
	tmpa=(int * )malloc((high-low+1)*sizeof(int));
	while (i<=mid&&j<=high)
		if(a[i]<=a[j]){
			tmpa[k]=a[i];
			i++;k++;
		}
		else{
			tmpa[k]=a[j];
			j++;k++;
		}
		while(i<=mid){
			tmpa[k]=a[i];
			i++;k++;
		}
		while(j<=high){
			tmpa[k]=a[j];
			j++;k++;
		}
		for(k=0,i=low;i<=high;k++,i++)
			a[i]=tmpa[k];
		free(tmpa);
}
void MergePass(int a[],int length,int n){
	int i;
	for(i=0;i+2*length-1<n;i=i+2*length)
		Merge(a,i,i+length-1,i+2*length-1);
	if(i+length-1<n)
		Merge(a,i,i+length-1,n-1);
}
void MergeSort(int a[],int low,int high){
	int mid;
	if(low<high){
		mid=(low+high)/2;
		MergeSort(a,low,mid);
		MergeSort(a,mid+1,high);
		Merge(a,low,mid,high);
	}
}
void main(){
	int n=10;
	int a[]={2,5,1,7,10,6,9,4,3,8};
	printf("排序前:");disp(a,n);
	MergeSort(a,0,9);
	printf("排序后:");disp(a,n);
}

3.运行结果

4.算法复杂度分析

数组段是偶数段,对于上述二路归并排序算法,当有n个元素时需要[log2n]趟归并,每一趟归并,它的元素比较次数不超过n-1,元素移动次数都是n,因此二路归并排序的时间复杂度O(nlog2n)

假设MergeSort(a,0,n-1)算法的执行时间为T(n),显然,Merge(a,0,n/2,n-1)合并操作的执行时间为O(n),所以得到以下递推公式

T(n)=1                 当n=1的时候

T(n)=2T(n/2)+O(n)     当n>1的时候

容易得出 T(n)=O(nlog2n)。

实验总结

在这次实验中,我学到很多东西,加强了我的动手能力,并且培养了我的独立思考能力。特别是在做实验报告时,因为在做数据处理时出现很多问题,如果不解决的话,将会很难的继续下去。还有动手这次实验,使这门课的一些理论知识与实践相结合, 更加深刻了我对算法设计与分析这门课的认识。


生活

寒假留校上半年还好,这学期开学就奇怪了,从家里来了之后就一直发烧,吃完退烧药之后,消停了两天,又发烧,直到学校正式开学,才消停,反反复复了十来天。罢了,总归,又能活蹦乱跳了。

之前一直觉得自己性格特征不明显,网上的东西很多都是刻板印象,直到玩得熟的朋友说我线上活泼还好说话,但线下很欠打,tm是个杠精,我才意识到,欧,好吧,不过还是不喜欢给自己贴标签,因为毕竟,每个人都是独一无二的。(❁´◡`❁)

上次经历了一些事情,朋友说那么爱问原因的你,怎么这回,不问问他原因呢?因为,我认为,无论是什么原因,如果后悔了,如果选择的不是我,那就不属于我,要么全部,要么全不,我永远值得世界上最好的东西,是我的,谁也抢不走,不是我的,那我更不稀罕。或许,我的观念有一天会改变,会意识到自己的狭隘,但目前为止,我尊重当下的自己。

 生活小满胜万全,现在 ,觉得,每天都无比绚丽多彩。24节气快惊蛰了,为什么喜欢春天和夏天呢?因为它灿烂,明媚,热烈。

上次跟同学聊天,偶然提到项目,他说

嘿嘿,谁得到夸夸和认可的时候不开心嘞 😎😎😎😎😎😎。

四级也过了,去年大英赛省二,今年的就不参加了,那就剩下,准备准备六级,还有蓝桥杯了......


本来是想拍这个表情包的,

但是手机怎么放都不对,于是,画风就变了,也很不错了嘞

两个突发奇想的小女孩儿( 3月1日傍晚 )


基本不追星,但是高中的时候就喜欢张新成饰演的黎语冰,现在看,还是很喜欢


嘿嘿,臭屁一下,世界上怎么会有我这么棒棒哒的人儿,天哪,又是喜欢自己的一天。

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

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

相关文章

计算机网络-第3章 数据链路层

主要内容&#xff1a;两个信道及对应的协议&#xff1a;点对点信道和广播信道&#xff0c;扩展以太网和高速以太网 本章的分组转发为局域网内的转发&#xff0c;不经过路由&#xff0c;网络层分组转为为网络与网络之间的转发&#xff0c;经过路由。局域网属于网络链路层的范围…

苹果群控功能解析与代码分享!

随着移动互联网的飞速发展&#xff0c;智能设备日益普及&#xff0c;苹果设备因其出色的用户体验和稳定的性能受到了广大用户的喜爱&#xff0c;然而&#xff0c;对于开发者而言&#xff0c;如何有效地管理和控制大量的苹果设备成为了一个亟待解决的问题。 一、苹果群控功能概…

00. Nginx总结-错误汇总

/www/wangmingqu/index.html" is forbidden (13: Permission denied) 错误图片 错误日志 2024/01/09 22:26:27 [error] 1737#1737: *1 "/www/wangmingqu/index.html" is forbidden (13: Permission denied), client: 192.169.1.101, server: www.wangmingqu.c…

回收小程序开发,降低企业成本,提高回收利润

近年来&#xff0c;人们的回收意识逐渐强烈&#xff0c;废品回收行业发展非常迅猛&#xff0c;促进了我国的资源回收再利用&#xff0c;我国回收行业也将迎来新的发展机遇。 随着市场规模的扩大&#xff0c;回收行业也正在逐步进行创新。在互联网的支持下&#xff0c;行业中也…

只会Vue的我,用两天学会了react,这个方法您也可以

公众号&#xff1a;需要以下pdf&#xff0c;关注下方 2023已经过完了&#xff0c;让我们来把今年的面试题统计号&#xff0c;来备战明年的金三银四&#xff01;所以&#xff0c;不管你是社招还是校招&#xff0c;下面这份前端面试工程师高频面试题&#xff0c;请收好。 背景 由…

基于springboot实现保险信息网站系统项目【项目源码+论文说明】

基于springboot实现保险信息网站系统演示 摘要 随着互联网的不断发展&#xff0c;现在人们获取最新资讯的主要途径来源于网上新闻&#xff0c;当下的网上信息宣传门户网站的发展十分的迅速。而保险产品&#xff0c;作为当下人们非常关注的一款能够给人们带来医疗、生活、养老或…

保护模式笔记九 中断门和IDT(中断描述符表)

段选择子&#xff1a; 先直观认识一下GDT和段选择子在逻辑地址转换为线性地址中的作用&#xff0c;例如&#xff1a; 给出逻辑地址&#xff1a;21h:12345678h&#xff0c;需要将其转换为线性地址 a. 选择子SEL21h0000000000100 0 01b&#xff0c;他代表的意思是&#xff1a…

操作系统--绪论

这里写目录标题 什么是操作系统&#xff08;OS&#xff09;硬件工作示例引入操作系统目标计算机的产生图灵机通用图灵机计算机 启动电源键开启后&#xff0c;计算机干了什么二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目…

洛谷P8888(吉利题) 实验基地

今天来水一期吉利题。 提醒一下&#xff0c;虽然编号很吉利&#xff0c;但内容可不吉利&#xff0c;做好心理准备&#xff01;&#xff01;&#xff01; 题目背景 小 A 和小 B 用实验基地全新的装备进行了一场世纪蒟蒻之战。 题目描述 众所周知&#xff0c;实验基地的武器…

静态时序分析:SDC约束命令set_disable_timing详解

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定对象列表 指定源、目的引脚 指定恢复 简单使用 写在最后 上一章中&#xff0c;我们学习了如何使用set_case_analysis模式分析命令&#xff0c;它通过指定某个端口或引脚为固定值&…

B3619 10 进制转 x 进制

题目描述 给定一个十进制整数 n 和一个小整数 x。将整数 n 转为 x 进制。对于超过十进制的数码&#xff0c;用 A&#xff0c;B ... 表示。 输入格式 第一行一个整数 n&#xff1b; 第二行一个整数 x。 输出格式 输出仅包含一个整数&#xff0c;表示答案。 输入输出样例 …

三星成功研发出业界首款12层堆叠HBM3E

三星电子有限公司成功研发出业界首款12层堆叠HBM3E DRAM——HBM3E 12H&#xff0c;这是迄今为止容量最大的HBM产品。这款新型HBM3E 12H内存模块提供了高达1,280GB/s的史上最高带宽&#xff0c;并拥有36GB的存储容量&#xff0c;相较于之前的8层堆叠HBM3 8H&#xff0c;在带宽和…

鸿蒙 Stage模型-应用组件-配置、UIAbility

前提&#xff1a;基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。&#xff08;或有偏颇&#xff0c;自行斟酌&#xff09; 一、概念 可以看到分为运行期、编译器&#xff0c;主要关注UIAbility&#xff08;类似Activity&#xff0c;UI相关&#xff0…

MySQL面试题纯享版

基础内容 1、MySQL的架构分层 2、一条 SQL 查询语句的执行流程 3、如何查看 MySQL 服务被多少个客户端连接了&#xff1f; 4、 空闲连接会一直占用着吗&#xff1f; 5、MySQL 的连接数有限制吗&#xff1f; 6、 怎么解决长连接占用内存的问题&#xff1f; 7、执行器与存储引擎…

AI大模型让你体验未来科技之美

在未来的世界里&#xff0c;AI大模型扮演着越来越重要的角色&#xff0c;它们不仅可以让我们感受到科技之美&#xff0c;更能够改变我们的生活方式和工作方式。通过AI大模型的运用&#xff0c;我们可以实现无人驾驶汽车、智能家居、智能医疗等各种领域的创新应用。 首先说到无…

Android:BitmapFactory.decodeStream Bitmap的内存优化OutOfMemory异常以后Crash闪退

自己项目中使用如下方法&#xff0c;有的手机上会奔溃报错&#xff0c;原因是BitmapFactory.decodeStream部分没有使用options参数改变内存大小 改成如下形式后正常了&#xff1b;正确解决方案&#xff1a;设置inSampleSize 一&#xff09;Android BitmapFactory.decodeStream(…

网工内推 | 国企运维,年薪最高30W,RHCE认证优先

01 上海华力微电子有限公司 招聘岗位&#xff1a;系统运维资深/主任工程师 职责描述&#xff1a; 1、负责IT基础设施&#xff08;包括服务器、存储、中间件等系统基础技术平台&#xff09;的设计建设和日常运维管理&#xff1b; 2、负责生产、开发和测试环境的技术支持&#x…

LeetCode刷题小记 七、【二叉树(一)】

1.二叉树 文章目录 1.二叉树写在前面1.1二叉树理论基础1.2二叉树的递归遍历1.3二叉树的迭代遍历1.4二叉树的统一迭代法1.5二叉树的层序遍历1.6翻转二叉树1.7对称二叉树1.8二叉树的最大深度1.9二叉树的最小深度1.10完全二叉树的节点个数1.11平衡二叉树1.12二叉树的所有路径1.13左…

2024年软考-官方最新考试安排出来了,软考新调整,很重要,但也很惹人气愤

官方最新通知&#xff0c;关于2024年度计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试工作计划 笔试改机考后&#xff0c;必然会迎来调整&#xff0c;但有点让人费解。 这次调整变动主要是每年考试的次数调整&#xff0c;很多改为了一年一考&#xff0c;具体…

宠物的异味,用空气净化器可以解决吗?宠物空气净化器品牌推荐

养猫的人都了解&#xff0c;一个养猫家庭的环境卫生和气味问题与主人的关系密切相关。主人的勤劳程度和对卫生的重视程度直接影响着家中的气味。尽管主人通常会经常更换猫砂&#xff0c;但有时候仍然会存在一些难闻的气味。事实上&#xff0c;忙碌的猫主人可能会因为没有足够的…