数据结构
你谁啊?我乾呢?
这个作者很懒,什么都没留下…
展开
-
05、队列(queue):队列在线程池等有限资源池中的应用
05、|队列(queue):队列在线程池等有限资源池中的应用 5.1 如何理解“队列”? 先进者先出,这就是典型的“队列” 最基本的操作也是两个: 入队 enqueue(),放一个数据到队列尾部; 出队 dequeue(),从队列头部取一个元素。 实现: 用数组实现的队列叫作顺序队列; 用链表实现的队列叫作链式队列。 队列需要两个指针: 一个是 head 指针,指向队头; 一个是 ...原创 2020-02-28 05:00:03 · 189 阅读 · 0 评论 -
04、 栈实现浏览器的前进和后退功能
04、 |栈:实现浏览器的前进和后退功能 4.1 “栈”的理解 类似一叠盘子——后进者先出,先进者后出。 栈是一种"操作受限"的线性表。 当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,首选"栈"结构。、 如何实现一个栈 顺序栈——数组实现的; 链式栈——链表实现的。 代码一: public class StackBasedOnArray { priv...原创 2020-02-28 03:14:52 · 421 阅读 · 0 评论 -
03、链表:实现LRU(Least Recently Used)缓存淘汰算法
03、|链表:实现LRU(Least Recently Used)缓存淘汰算法 3.1 链表结构及其操作 与数组的对比: 不同的链表类型: 和单链表相比,循环链表的优点是从链尾到链头比较方便。当要处理的数据具有环型结构特点时,就特别适合采用循环链表。比如著名的约瑟夫问题——eg:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:...原创 2020-02-22 15:08:59 · 287 阅读 · 0 评论 -
02、 数组:为什么很多编程语言中数组都从0开始编号?
02、 | 数组:为什么很多编程语言中数组都从0开始编号? 2.1 如何实现随机访问? 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表(Linear List)。线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。 连续的内存空间和相同类型的数据。因此可以保...原创 2019-12-24 02:21:28 · 109 阅读 · 0 评论 -
1、复杂度分析
1、复杂度分析 1.1 事后统计法 我们把代码跑一遍,通过统计、监控,就能得到算法的执行的时间和占用的内存大小——事后统计法。 局限性: 测试结果非常依赖测试环境 测试结果受数据规模影响很大 因此引入大O时间复杂度表示法 1.2 大O时间复杂度表示法 表示代码执行时间随数据规模增长的趋势,也叫做渐进时间复杂度,简称时间复杂度。 时间复杂度分析 只关注执行循环次数最多的一段...原创 2019-12-24 01:27:15 · 117 阅读 · 0 评论