两路归并排序

两路归并排序(升序排列)  (平均/最差)时间复杂度O(NlogN)

将两个有序的单链表合并为一个有序的单链表,默认是按升序排列的。

合并操作是非常适合用递归来完成的一类操作,递归实现将会比迭代实现更加清晰且易于理解。
尽管如此,你可能也不愿意使用递归来实现这个操作,因为递归方法所使用的栈空间与链表的长度成正比。

部分关键代码如下:

typedef struct _Node_t
{struct _Node_t *next;int data;
}Node;Node *Merge(Node *head1, Node *head2)//时间复杂度:O(nlogn)
{Node *head = NULL;if (NULL == head1){return head2;}if (NULL == head2){return head1;}while ((NULL != head1) && (NULL != head2)){if (head1->data < head2->data){head = head1;head->next = Merge(head1->next, head2);}else{head = head2;head->next = Merge(head1, head2->next); }}return head;
}


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

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

相关文章

Eclipse下的项目管理插件介绍

前言 最近,一直学习开源项目的代码,难免会碰到各种版本管理器,作为一名在校大学生,学校的课程完全没提及到,靠着自己的摸索,走了不少弯路,写个列表,望对大家有所帮助.顺便提一下,这里只说客户端,至于服务端,自行根据提供的资料学习 CVS 这里eclipse自带就有,也有一段历史,现在的…

算命

今天大年初三&#xff0c;出了太阳变暖很多&#xff0c;我们带着家里的小朋友一起上街吃早餐。因为明天要去阳西&#xff0c;决定去外婆家看看&#xff0c;在超时买了点东西&#xff0c;走回车上刚好看到路边有算命先生&#xff0c;我就想着来计算一下。我先是问了记算一次多少…

back log

1*你应该备份日志 BACKUP LOG 数据库名 TO DISKc:\aalogbak WITH INIT,NO_TRUNCATE 这样你的日志清空也备份了&#xff0c;日志也清空了&#xff0c;你可以压缩了 在维护日志备份序列时&#xff0c;调度 BACKUP LOG 语句按间隔发生&#xff0c;以使事务日志不致增长到超过预期的…

java loadlibrary_java – System.loadLibrary不起作用.链中的第二个lib的UnsatisfiedLinkError...

我有通过JNI使用cpp共享库libclient.so的java程序Client.class.libclient.so构建为共享并使用cpp共享库libhttp.so.libclient.so和libhttp.so放在文件夹/ home / client / lib64中Client.class放在/ home / client / bin中客户端可以加载库> System.load和环境变量LD_LIBRAR…

tcp的滑动窗口

今天阅读了TCP中滑动窗口部分的内容&#xff0c;总结如下&#xff1a; 滑动窗口&#xff1a;又叫缓冲区&#xff0c;是两台主机间传送数据时的缓冲区。每台TCP/IP主机支持两个滑动窗口&#xff1a;一个用于接收数据&#xff0c;另一个用于发送数据。 窗口尺寸表示计算机可能缓…

嵌入式行业那些坑与出路

嵌入式的坑烧钱嵌入式的学习十分烧钱&#xff0c;这就让人有点望而却步。我是做DSP起步的&#xff0c;更是能体会到嵌入式绝对是一个拿钱搭梯子的学习行业。在我的学习过程中身边有不少的人投向了CS行业&#xff0c;也就是纯软件开发&#xff0c;比如网页、手机应用、数据库等。…

入行后第二份工作的一些感悟

这是我毕业后进入的第二家公司。也是我工作的第二个年头。转眼之间在新公司已经度过半年的时间了。内心还是有些许的感慨。 工作的内容和上家公司是差不多的&#xff0c;主要是做windows方面的基础架构和应用的维护&#xff0c;例如AD、exchange、lync、ISA、虚拟化等等&a…

poj2631

求一棵树的直径&#xff0c;所谓直径就是树上距离最远的两个点&#xff01; 树形动归&#xff0c;每个点的为根的子树的最长向下链和次长链的和&#xff01; 当然也可以二次深搜&#xff01; ————————————————————————————————————————…

原来做的一个语义搜索软件的界面

今天得知NGW&#xff08;New Generation Web&#xff0c;关于语义网络方面的&#xff09;课程及实验作业成绩已公布&#xff0c;急去查看&#xff0c;但与想象中相去甚远。 罢了&#xff0c;凡事但求尽力而为&#xff0c;末了问心无愧即可&#xff0c;其它种种皆是虚幻。 附&am…

tcp为什么需要3次握手和3次握手的过程

网络上关于tcp连接时的3次握手相关的文章很多&#xff0c;在此不再重复&#xff0c;个人总结如下&#xff0c;如有不正确之处请给予指正。 tcp“三次握手”的目的是: 为了防止已经失效的请求报文段突然又传送到了服务器端&#xff0c;因而产生错误。 tcp的3次握手过程: (1)、…

C使用FILE指针文件操作

文件 文件的基本概念 所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称&#xff0c;叫做文件名。例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的&#xff0c;在使用时才调入内存中来。从不同的角度可对文件作…

java 守护线程 run_java守护线程(后台线程)

/*1.让各个对象或类相互灵活交流2.两个线程都冻结了&#xff0c;就不能唤醒了&#xff0c;因为根据代码要一个线程活着才能执行唤醒操作&#xff0c;就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候&#xff0c;里面的两个线程都处于冻结状态&#xff0c;这样就卡住了…

2年质保期刚过就翘辫子,这是什么骚设计?

1.终于又坏了一件自从开始写聊聊身边的嵌入式这个系列&#xff0c;便常常有一个邪恶的想法在脑袋里盘旋&#xff0c;总盼着家里哪件电器赶紧出点毛病。你知道&#xff0c;如果不把一个东西拆的七零八落&#xff0c;覆水难收&#xff0c;那是不能满足咱们的好奇心的。都说念念不…

剑指offer---用两个栈实现队列

题目&#xff1a;用两个栈实现队列 要求&#xff1a;用两个栈来实现一个队列&#xff0c;完成队列的Push和Pop操作。 队列中的元素为int类型。 1 class Solution2 {3 public:4 void push(int node) {5 6 }7 8 int pop() {9 10 } 11 12 priva…

Java内存泄露原因详解

一、Java内存回收机制 不论哪种语言的内存分配方式&#xff0c;都需要返回所分配内存的真实地址&#xff0c;也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的&#xff0c;这些对象的创建都是在堆&#xff08;Heap&#xff09;中分配的&#xff0…

java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4

最近新项目要需要更新发布版本号&#xff0c;用于标识发布的版本&#xff0c;网上找了下插件&#xff1a;buildnumber-maven-plugin 1.4 。记录下自己使用成功过程中遇到的各种问题&#xff0c;以供需要的朋友参考&#xff1a;插件官方网站&#xff1a;http://www.mojohaus.org…

如何分割合并ISO文件

今天打算在电脑上装Androd系统&#xff0c;谷歌考虑到了这方面的需求&#xff0c;特意制作了liveandroidv0.3.iso操作系统的镜象文件供开发人员下载。没有人愿意为了装这个系统而把原先的系统换掉&#xff0c;许多人也只是想玩票一下。这样就只能用虚拟机安装了&#xff0c;虚拟…

推荐Linux内核书籍

大家好&#xff0c;挺久没推荐内核相关的书籍了&#xff0c;今天给大家推荐一本我觉得不错的书&#xff0c;这本书籍的作者叫做李云华&#xff0c;书籍名字叫《独辟蹊径品内核》&#xff0c;他的写作思路非常不错&#xff0c;他会引用内核代码中的内容&#xff0c;给大家剖析讲…

3个Gmail 邀请,先进先出!!

3个Gmail 邀请&#xff0c;先进先出&#xff01;&#xff01;转载于:https://www.cnblogs.com/zhangqh/archive/2005/01/27/98222.html

互联网公司的项目经理:客户伤不起

互联网公司的项目经理&#xff1a;客户伤不起 前面《互联网公司的项目经理&#xff1a;大同与大不同》谈到了互联网公司的项目经理面对的客户和传统软件公司的不同&#xff0c;主要表现在客户与项目经理是同一组织内的、是和你一个战壕共同战斗的&#xff0c;很多情况甚至荣辱与…