随笔 - 67  文章 - 0  评论 - 63  阅读 - 26万

随笔分类 -  数据结构

学习数据结构的最好办法就是从自己的思维出发,自己动手实现。
自己动手实现java数据结构(九) 跳表
摘要:1. 跳表介绍 在之前关于数据结构的博客中已经介绍过两种最基础的数据结构:基于连续内存空间的向量(线性表)和基于链式节点结构的链表。 有序的向量可以通过二分查找以logn对数复杂度完成随机查找,但由于插入/删除元素时可能导致内部数组内整体数据的平移复制,导致随机插入/删除的效率较低。而普通的一维链表 阅读全文
posted @ 2020-11-26 22:03 小熊餐馆 阅读(837) 评论(2) 推荐(2) 编辑
自己动手实现java数据结构(八) 优先级队列
摘要:1.优先级队列介绍 1.1 优先级队列 有时在调度任务时,我们会想要先处理优先级更高的任务。例如,对于同一个柜台,在决定队列中下一个服务的用户时,总是倾向于优先服务VIP用户,而让普通用户等待,即使普通的用户是先加入队列的。 优先级队列和普通的先进先出FIFO的队列类似,最大的不同在于,优先级队列中 阅读全文
posted @ 2019-02-28 22:40 小熊餐馆 阅读(2591) 评论(0) 推荐(0) 编辑
自己动手实现java数据结构(七) AVL树
摘要:1.AVL树介绍 前面我们已经介绍了二叉搜索树。普通的二叉搜索树在插入、删除数据时可能使得全树的数据分布不平衡,退化,导致二叉搜索树最关键的查询效率急剧降低。这也引出了平衡二叉搜索树的概念,平衡二叉搜索树在此前的基础上,通过一系列的等价变换使二叉搜索树得以始终处于"平衡"的状态,拥有稳定且高效的查询 阅读全文
posted @ 2019-02-13 20:15 小熊餐馆 阅读(826) 评论(0) 推荐(0) 编辑
自己动手实现java数据结构(六)二叉搜索树
摘要:1.二叉搜索树介绍 前面我们已经介绍过了向量和链表。有序向量可以以二分查找的方式高效的查找特定元素,而缺点是插入删除的效率较低(需要整体移动内部元素);链表的优点在于插入,删除元素时效率较高,但由于不支持随机访问,特定元素的查找效率为线性复杂度O(n),效率较低。 向量和链表的优缺点是互补的,那么有 阅读全文
posted @ 2019-01-24 22:40 小熊餐馆 阅读(1080) 评论(1) 推荐(0) 编辑
自己动手实现java数据结构(五)哈希表
摘要:1.哈希表介绍 前面我们已经介绍了许多类型的数据结构。在想要查询容器内特定元素时,有序向量使得我们能使用二分查找法进行精确的查询((O(logN)对数复杂度,很高效)。 可人类总是不知满足,依然在寻求一种更高效的特定元素查询的数据结构,哈希表/散列表(hash table)就应运而生啦。哈希表在特定 阅读全文
posted @ 2019-01-03 21:50 小熊餐馆 阅读(2816) 评论(0) 推荐(3) 编辑
自己动手实现java数据结构(四)双端队列
摘要:1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念。和栈相对应,在许多算法设计中,需要一种"先进先出(First Input First Output)"的数据结构,因而一种被称为"队列(Queue)"的数据结构被抽象了出来(因为现实中的队列,就是先进先出的)。 队列是一种线性表,将线性 阅读全文
posted @ 2018-12-19 22:09 小熊餐馆 阅读(3169) 评论(0) 推荐(0) 编辑
自己动手实现java数据结构(三) 栈
摘要:1.栈的介绍 在许多算法设计中都需要一种"先进后出(First Input Last Output)"的数据结构,因而一种被称为"栈"的数据结构被抽象了出来。 栈的结构类似一个罐头:只有一个开口;先被放进去的东西沉在底下,后放进去的东西被放在顶部;想拿东西必须按照从上到下的顺序进行操作。 示意图来自 阅读全文
posted @ 2018-12-06 21:59 小熊餐馆 阅读(894) 评论(0) 推荐(0) 编辑
自己动手实现java数据结构(二) 链表
摘要:1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的线性表。今天,要介绍的是线性表的另一种实现方式 链表。 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构。但是,链表内部存储数据的方式却和向量大不相同:链表的核心是节点。节点存储"数据"的同时还维护着"关联节点的引用 阅读全文
posted @ 2018-12-02 20:10 小熊餐馆 阅读(1550) 评论(0) 推荐(0) 编辑
自己动手实现java数据结构(一) 向量
摘要:1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为数组(Array)的数据结构与之对应。在使用数组时需要事先声明固定的大小以便程序在运行时为其开辟内存空间;数组通过下标值计算出地址偏移量来对内部元素进行访问。 阅读全文
posted @ 2018-11-23 21:54 小熊餐馆 阅读(1522) 评论(3) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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