21-哈希算法 Posted on 2019-03-28 | Post modified: 2019-04-04 Words count in article: 3.5k | Reading time ≈ 11 哈希算法历史悠久,业界著名的哈希算法也有很多,比如MD5、SHA等。在我们实际开发中,基本上都是拿现成的直接用。所以,接下来将会从实战的角度来看看,在实际开发中,我们该如何用哈希算法解决问题。 什 ... Read more »
18-散列表 Posted on 2019-03-25 | Post modified: 2019-04-04 Words count in article: 4.3k | Reading time ≈ 14 tip:该篇有点长,请合理安排时间~ 散列介绍散列思想散列表的英文叫”Hash Table”,平时也有人叫哈希表或者Hash表。 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是 ... Read more »
17-跳表:为什么Redis一定要用跳表来实现有序集合? Posted on 2019-03-23 | Post modified: 2019-04-04 Words count in article: 3.1k | Reading time ≈ 10 开篇问题我们前面讲15-二分查找(上):如何用最省内存的方式实现快速查找功能?,二分查找依赖于数组的随机访问,所以只能用数组来实现。但是,如果数据存储在链表里,就真的没法用二分查找算法了嘛? 实际上, ... Read more »
计算机系统漫游:执行hello.c,计算机都干了些什么? Posted on 2019-03-21 | Post modified: 2020-02-18 Words count in article: 3.8k | Reading time ≈ 13 CSAPP这本书,放在我的书架上已经一年多了,在过去的时间里几乎没有花大块、很长的时间来看过它,始终没有坚持看完。但是作为一个学计算机的,操作系统垃圾就真的很说不过去了。所以还是要重新系统的学习这本 ... Read more »
16-二分查找(下):如何快速根据IP定位对应的省份地址? Posted on 2019-03-18 | Post modified: 2019-04-04 Words count in article: 1.6k | Reading time ≈ 6 开篇问题在一个庞大的地址库中逐一对比IP地址所在的区间,是非常耗时的。假设我们有12万条这样的IP区间与归属地的对应关系,如何快速定位出一个IP地址的归属地呢? 上一篇我们介绍了有关二分查找的原理,并 ... Read more »
15-二分查找(上):如何用最省内存的方式实现快速查找功能? Posted on 2019-03-18 | Post modified: 2019-04-04 Words count in article: 2k | Reading time ≈ 7 开篇问题假设这里有1000万个整数数据,每个数据占8个字节,如何设计数据结构和算法,快速判断某个整数是否在这1000万数据中?我们希望这个功能不要占用太多的内存空间,最多不要超过100MB,你会怎么做 ... Read more »
14-排序优化:如何实现一个通用的、高性能的排序函数? Posted on 2019-03-17 | Post modified: 2019-04-04 Words count in article: 1.5k | Reading time ≈ 5 几乎所有的编程语言都会提供排序函数,比如C语言中qsort()、C++STL中的sort()、stable_sort(),还有Java语言中的Collections.sort()。在平时开发中我们一 ... Read more »
科技史纲60讲全文总结 Posted on 2019-03-15 | Post modified: 2020-02-18 Words count in article: 385 | Reading time ≈ 1 科技史纲算是目前来说,唯一一个”追”完的课程吧,虽然有些内容并不是很能理解的透彻,但每回听完都有一种,喔,原来是这样子的啊,喔,原来这个问题、现象还可以这样来思考。收获真的好多呀,总感觉意犹未尽,想要 ... Read more »
13-线性排序:如何根据年龄给100万用户数据排序? Posted on 2019-03-11 | Post modified: 2019-04-04 Words count in article: 2.5k | Reading time ≈ 9 这一讲我们来分析三种时间复杂度是O(n)的排序算法:桶排序、计数排序、基数排序。由于他们算法的时间复杂度是线性的,所以我们把这类排序算法又叫做 线性排序。之所以能做到线性的时间复杂度,主要原因是,这 ... Read more »
我到底想要什么?(深刻反思) Posted on 2019-03-08 | Post modified: 2020-02-18 Words count in article: 2.3k | Reading time ≈ 7 原认为已经考虑的「足够清楚」,「足够明白」关于考研的事情在小伙伴的一通话后又开始犹豫了。我再次问自己,我为什么要考研?考上和没考上自己今后的路是否会有很大的改变?自己对所谓学计算机的经验优先论真正的 ... Read more »