随笔分类 -  数据结构与算法

代码参考:https://git.oschina.net/learnhow/datastructuresandalgorithm
摘要:图是计算机经典算法的重要组成部分,从互联网结构到电力拓扑,从经济学的市场模型到医学对传染病的感染预测都具有非常广泛的应用。图的研究方面可以分为连通性、路径问题、可达性等多个方面。今天我们仅聚焦于有向图和无向图的环测定问题,先使用Java语言实现它们的基本算法,然后我将利用矩阵为大家展示如何通过数学模 阅读全文
posted @ 2020-05-17 14:18 冷豪 阅读(781) 评论(0) 推荐(3) 编辑
摘要:“双缓存队列”是我在一次开发任务中针对特殊场景设计出来的结构。使用场景为:发送端持续向接收端发送数据包——并且不理会接收端是否完成业务逻辑。由于接收端在任何情况下停止响应即可能产生数据丢失,因此无法简单的设计一条线程安全队列来对数据写入或读取(读取数据时将队列上锁视为对写入的停止响应)。 鉴于此,我 阅读全文
posted @ 2017-07-22 12:57 冷豪 阅读(2246) 评论(0) 推荐(0) 编辑
摘要:查找树ADT——查找二叉树 定义:对于树中的每个节点X,它的左子树中的所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。 现在给出字段和方法定义(BinarySearchTree.h) 查找二叉树的遍历可以采用遍历和非遍历两种算法。 一、添加元素(insert) 现在假设要添加这样一组整 阅读全文
posted @ 2017-06-23 22:24 冷豪 阅读(2368) 评论(0) 推荐(1) 编辑
摘要:今天要介绍一个这样的数据结构: ——跳跃表 Skip List 一、普通链表 对于普通链接来说,越靠前的节点检索的时间花费越低,反之则越高。而且,即使我们引入复杂算法,其检索的时间花费依然为O(n)。为了解决长链表结构的检索问题,一位名叫William Pugh的人于1990年提出了跳跃表结构。基本 阅读全文
posted @ 2017-04-22 21:43 冷豪 阅读(9908) 评论(0) 推荐(6) 编辑
摘要:算法概述:要求实现将一条单向链表反转并考虑时间复杂度。 算法分析: 数组法(略): 将列表元素逐个保存进数组,之后再逆向重建列表 点评:实现逻辑最简单,需要额外的内存开销。 移动指针: 通过三个指针逐个从链表头开始逐一反转链表元素的指针 点评:不需要额外的内存开销,会改变原始链表。 递归: 以递归的 阅读全文
posted @ 2017-04-16 16:37 冷豪 阅读(1445) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示