摘要: 首先,我们来看看任务处理速度和线程个数的关系:由于 CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关。过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理的任务的特点和硬件环境,事先设置好的。 当我们向固定大小的线程池中请求一个线程时,如果线程 阅读全文
posted @ 2020-04-22 17:51 Albert-陌尘 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一、什么是神经网络 深度学习(Deep Learning)就是训练神经网络(Neural Network)。有时候,这个神经网络的复杂度会非常高。神经网络又是什么呢?我们用一个示例来阐述神经网络模型的概念。 1. 通过房价预测模型认识神经网络 已知条件 一共六套房。 已知每套房的面积(即输入 x)。 阅读全文
posted @ 2020-04-22 13:31 Albert-陌尘 阅读(351) 评论(0) 推荐(1) 编辑
摘要: 我们使用的浏览器都有前进、后退功能。譬如:当你依次访问完一串页面 a-b-c 之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面 b 和 a。当你后退到页面 a,点击前进按钮,就可以重新查看页面 b 和 c。但是,如果你后退到页面 b 后,点击了新的页面 d,那就无法再通过前进、后退功能查看页面 阅读全文
posted @ 2020-04-20 18:28 Albert-陌尘 阅读(515) 评论(0) 推荐(1) 编辑
摘要: 上篇博客总结了链表的基本理论,但可能还不足以让我们轻松写出链表的代码。链表的理论,大多数人都知道。但在面试中,能把“链表反转”这几行代码写对的人不足 10%。 本篇博客就整理一些写链表代码的技巧,以期从实战的角度,更好地掌握链表。 一、理解指针或引用的含义 链表的结构本身并不是很难理解,难度主要在于 阅读全文
posted @ 2020-04-18 15:40 Albert-陌尘 阅读(174) 评论(0) 推荐(1) 编辑
摘要: 我们先来讨论一个经典的链表应用场景——LRU 缓存淘汰算法。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。 阅读全文
posted @ 2020-04-17 13:37 Albert-陌尘 阅读(216) 评论(0) 推荐(1) 编辑
摘要: 几乎在每一种编程语言中,都有数组这个数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常基础、简单,但是我们真的理解了它的精髓吗?在大部分编程语言中,数组都是从 0 开始编号的。为什么数组要从 0 开始编号,而不是从 1 开始呢?从 1 开始不是更符合人类 阅读全文
posted @ 2020-04-15 23:31 Albert-陌尘 阅读(217) 评论(0) 推荐(1) 编辑
摘要: 上一篇博客中,我们总结了复杂度的大 O 表示法和分析技巧,还列举了一些常见复杂度分析的示例。本篇博客来看看以下四个知识点: 最好情况时间复杂度(best case time complexity) 最坏情况时间复杂度(worst case time complexity) 平均情况时间复杂度(ave 阅读全文
posted @ 2020-04-15 07:30 Albert-陌尘 阅读(349) 评论(0) 推荐(1) 编辑
摘要: 数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,更省存储空间。所以,执行效率是非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这就要用到本篇博客内容:时间、空间复杂度分析。 一、为什么需要复杂度分析? 把代码运行一遍,通过统计、监控,就能得到算法执行的时间和占用 阅读全文
posted @ 2020-04-12 20:52 Albert-陌尘 阅读(272) 评论(0) 推荐(1) 编辑
摘要: 一、什么是数据结构,什么是算法 过于学术的概念定义比较抽象,难以理解。我们从广义和狭义两个层面,来理解数据结构与算法这两个概念。 1. 广义角度 从广义上讲,数据结构就是指一组数据的存储结构(怎么放),算法就是操作数据的一组方法(怎么用)。 我们以图书馆的场景为例来进一步理解: 图书馆书籍量十分巨大 阅读全文
posted @ 2020-04-11 14:43 Albert-陌尘 阅读(550) 评论(0) 推荐(1) 编辑
摘要: 一、ssh 基础使用 1. ssh 客户端使用 Secure Shell(ssh)协议连接到运行了 ssh 服务端的远程服务器上。 2. ssh 是专为远程登录会话和其他网络服务提供安全性的协议。 有效防止远程管理过程中的信息泄露; 传输数据加密,可以防止 DNS 和 IP 欺骗; 传输数据压缩,加 阅读全文
posted @ 2020-03-30 08:53 Albert-陌尘 阅读(813) 评论(0) 推荐(0) 编辑