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

来源于《算法图解》、《算法》、《算法导论》、《编程珠玑》的个人笔记总结,另外感谢下争哥~
摘要:我们知道, CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致CPU频繁切换,处理性能下降。 所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。 当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处 阅读全文
posted @ 2019-06-17 01:51 无我斋主人 阅读(222) 评论(0) 推荐(0)
摘要:浏览器的前进、后退功能,我想你肯定很熟悉吧? 当你依次访问完一串页面a-b-c之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面b和a。当你后退到页面a,点击前进按钮,就可以重新查看页面b和c。 但是,如果你后退到页面b后,点击了新的页面d,那就无法再通过前进、后退功能查看页面c了。 假设你是浏 阅读全文
posted @ 2019-06-17 01:02 无我斋主人 阅读(187) 评论(0) 推荐(0)
摘要:有关写链表代码时,比如链表反转、有序链表合并等,还是比较出错的。 根据个人的一些经验,总结了几个写链表代码技巧。,想和大家讨论下。 技巧一:理解指针或引用的含义 接下来,我会拿C语言中的“指针”来讲解,如果你用的是Java或者其他没有指针的语言也没关系,你把它理解成“引用”就可以了。 实际上,对于指 阅读全文
posted @ 2019-05-31 12:42 无我斋主人 阅读(194) 评论(0) 推荐(1)
摘要:链表用途有哪些?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是LRU缓存淘汰算法。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用, 比如常见的CPU缓存、数据库缓存、浏览器缓存等等。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被 阅读全文
posted @ 2019-05-31 12:30 无我斋主人 阅读(119) 评论(0) 推荐(0)
摘要:在大部分编程语言中,数组都是从0开始编号的,但你是否下意识地想过, 为什么数组要从0开始编号,而不是从1开始呢? 从1开始不是更符合人类的思维习惯吗? 如何实现随机访问? 什么是数组? 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 这个定义里有几个关 阅读全文
posted @ 2019-05-31 01:46 无我斋主人 阅读(281) 评论(0) 推荐(0)
摘要:大O复杂度表示法 大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势, 所以,也叫作渐进时间复杂度(asymptotic time complexity),简称时间复杂度。 时间复杂度分析 1. 只关注循环执行次数最多的一段代码 大 O 这种复杂度表 阅读全文
posted @ 2019-04-18 15:55 无我斋主人 阅读(401) 评论(0) 推荐(0)
摘要:day1: 1.在Redis中,有序集合是用调表来实现的。 2.如何实时地统计业务接口的 99% 响应时间?(用"堆"来是实现)day2(如何学习数据结构): 1.数据结构就是指一组数据的存储结构,算法就是操作数据的一组方法 2.数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的 阅读全文
posted @ 2019-02-07 14:06 无我斋主人 阅读(280) 评论(0) 推荐(0)