![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
weixin_43526618
这个作者很懒,什么都没留下…
展开
-
什么是复杂度分析
作为程序员,我们能做的就是尽可能的降低复杂度,才能让代码在不同的环境下以最快的效率执行。至于是不是浪费时间,我觉得其实是个伪命题。首先按刚刚分析过程来看,通过熟悉练习,简单的代码是可以直接看出来复杂度的也就是不费时间;而比较复杂的代码就容易“一不小心”太“复杂”了,这个时候,为了代码质量考虑分析复杂度的时间也并不浪费。再有甚者,我们学习这个分析法,我觉得更多的是要明白这个理念,在写代码的时候就能关...转载 2019-01-18 15:53:09 · 1234 阅读 · 0 评论 -
链表和LRU缓冲淘汰策略
1.如何分别用链表和数组实现LRU缓冲淘汰策略? 1)什么是缓存? 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非广泛的应用,比如常见的CPU缓存、数据库缓存、浏览器缓存等等。 2)为什么使用缓存?即缓存的特点 缓存的大小是有限的,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?就需要用到缓存淘汰策略。 3)什么是缓存淘汰策略? 指的是当缓存被用满时清理数...转载 2019-01-21 14:12:47 · 186 阅读 · 0 评论 -
栈的概念和应用
一、什么是栈? 1.后进者先出,先进者后出,这就是典型的“栈”结构。 2.从栈的操作特性来看,是一种“操作受限”的线性表,只允许在端插入和删除数据。 二、为什么需要栈? 1.栈是一种操作受限的数据结构,其操作特性用数组和链表均可实现。 2.但,任何数据结构都是对特定应用场景的抽象,数组和链表虽然使用起来更加灵活,但却暴露了几乎所有的操作,难免会引发错误操作的风险。 3.所以,当某个数据集合只涉及...转载 2019-01-22 14:17:08 · 202 阅读 · 0 评论 -
队列的概念和应用
队列最大的特点就是先进先出,主要的两个操作是入队和出队。跟栈一样,它既可以用数组来实现,也可以用链表来实现。用数组实现的叫顺序队列,用链表实现的叫链式队列。特别是长得像一个环的循环队列。在数组实现队列的时候,会有数据搬移操作,要想解决数据搬移的问题,我们就需要像环一样的循环队列。 循环队列是我们这节的重点。要想写出没有 bug 的循环队列实现代码,关键要确定好队空和队满的判定条件,具体的代码你要能...转载 2019-01-22 15:23:38 · 1456 阅读 · 0 评论