最新文章

[译]简述现代Linux系统如何启动

点此阅读原文 因为很多超出本文范围的原因,今天,我想要写一下现在Linux系统如何启动的概述。因为作为一个系统管理员总是卡在这里,我将会特别的关注失败的地方。 系统通过 BIOS MBR 启动 或 U […]

数据结构系列之二 散列表

散列表也叫哈希表。在不同的编程语言里面,有不同的名字:Dict(Python)、map(Golang)、HashMap(Java)…… 但其实都是一个东西。 什么是散列表 如果我们现在有一组 key- […]

算法系列之七 二分查找

二分查找是一个较为简单的算法。用于在排好序的序列中进行查找。二分查找是典型的“分治算法”,其复杂度是 \(O(\log n)\)。 虽然说算法简单,但是很多人都不能无任何参考的情况下,写出来。所以,还 […]

算法系列之六 算法时间复杂度计算

算法的时间复杂度的计算是一个可以无限深入的课题。但是对于程序员来说,能够大概的评估出复杂度就已经足够用了。 在算法这个系列之前的几篇文章里,介绍了算法的使用和原理,但是我故意的将复杂度的介绍没有写上去 […]

数据结构系列之一 链表、栈和队列

今天要说的这三种数据结构:链表、栈、队列,都是非常简单和基础的数据结构。在后续的文章中都可能会用到。所以,在这里,花很小的篇幅,简单的介绍下。 链表 链表是一种非常简单的数据结构。由一组元素以一个特定 […]

算法系列之五 希尔排序

对于前面讲过的基础排序来说,他们在实际使用的时候,价值并不是太大。它的价值在于,体现了一种很好的思想。通过一些改进和变化,可以达到一个不错的性能。希尔排序就是典型的一个例子,它改进了插入排序,使得算法 […]

Docker CPU Usage

背景 当一台机器上跑有多个 Docker Container 的时候,我们需要知道,哪些容器占用了多少资源。采集这些指标,来让我们可以更加好的分配资源给每个 Container。 获取容器CPU使用率 […]

Python系列之 迭代器和生成器

很多Python的程序员都会混淆 迭代器 和 生成器 的概念和作用,分不清到底两个有什么区别。今天我们来好好说一说这两个概念。 迭代器(Iterator) Iterator Pattern Itera […]

算法系列之四 堆排序

堆排序也是一种较为常用的排序算法。它是基于对的优先队列来实现的。要学习堆排序,就要学习优先队列,以及堆的特性。 优先队列 在很多的应用场景中,我们需要数据有序,但不需要它们全部有序,或者是不需要它们一 […]

算法系列之三 归并排序

归并排序是分治算法的另一个典型的体现。与快速排序一样,它依赖数据之间的比较进行排序。 其缺点是需要额外的空间来辅助排序的过程。这使得归并排序的实用性大大降低,因为在日常的应用中,使用归并排序的场景都可 […]