起风了

“路海长 青夜旷 越过群山追斜阳”

算法一看就懂之「 数组与链表 」

算法一看就懂之「 数组与链表 」缩略图
数据结构是我们软件开发中最基础的部分了,它体现着我们编程的内功。大多数人在正儿八经学习数据结构的时候估计是在大学计算机课上,而在实际项目开发中,反而感觉到用得不多。 其实也不是真的用得少,只不过我们在使用的时候被很多高级语言和框架组件封装好了,真正需要自己去实现的地方比较少而已。但别...

算法一看就懂之「 堆栈 」

算法一看就懂之「 堆栈 」缩略图
上一篇咱们聊完了数据结构中最基础的「 数组 」和「 链表 」,今天咱们再来继续看看「 堆栈 」吧,我写技术文章很少 show code,所以经常有人吐槽。好吧,这个算法系列的文章我打算每一篇的结尾处都找一道算法题写出代码示例,这总可以了吧。 一、「 堆栈 」是什么? 堆栈(stack)是一种先进后出的、操作受...

算法一看就懂之「 递归 」

算法一看就懂之「 递归 」缩略图
之前的文章咱们已经聊过了「 数组和链表 」、「 堆栈 」和「 队列 」,今天咱们来看看「 递归 」,当然「 递归 」并不是一种数据结构,它是很多算法都使用的一种编程方法。它太普遍了,并且用它来解决问题非常的优雅,但它又不是那么容易弄懂,所以我特意用一篇文章来介绍它。 一、「 递归 」是什么? 递...

算法一看就懂之「 队列 」

算法一看就懂之「 队列 」缩略图
算法的系列文章中,之前咱们已经聊过了「 数组和链表 」、「 堆栈 」,今天咱们再来继续看看「 队列 」这种数据结构。「 队列 」和「 堆栈 」比较类似,都属于线性表数据结构,并且都在操作上受到一定规则约束,都是非常常用的数据类型,咱们掌握得再熟练也不为过。 一、「 队列 」是什么? 队列(queue)是...

算法一看就懂之「 递归 」

算法一看就懂之「 递归 」缩略图
之前的文章咱们已经聊过了「 数组和链表 」、「 堆栈 」和「 队列 」,今天咱们来看看「 递归 」,当然「 递归 」并不是一种数据结构,它是很多算法都使用的一种编程方法。它太普遍了,并且用它来解决问题非常的优雅,但它又不是那么容易弄懂,所以我特意用一篇文章来介绍它。 一、「 递归 」是什么?递归&nb...

算法一看就懂之「 冒泡排序 」

算法一看就懂之「 冒泡排序 」缩略图
上一篇文章「 排序算法 」已经整体的把排序算法的分类和评估方法介绍了一下,今天起咱们就开始依次介绍一下各种排序算法的原理和特性。咱们就从最容易理解的「 冒泡排序 」开始吧。 一、「 冒泡排序 」是什么?冒泡排序是一种交换排序,它的思路就是在待排序的数据中,两两比较相邻元素的大小,看是否满足大...

算法一看就懂之「 排序算法 」

算法一看就懂之「 排序算法 」缩略图
之前的文章咱们已经聊过了「 数组和链表 」、「 堆栈 」、「 队列 」和「 递归 」,这些要么是基础的数据结构,要么就是巧妙的编程方法。从今天起咱们来进入真正的算法阶段,看一看“排序算法”。排序算法有很多,如:「冒泡排序」、「插入排序」、「选择排序」、「希尔排序」、「堆排序」、「归并...

对数据库ID进行散裂化计算

import basehashclass Hasher: """ 对数据库ID进行散列化计算 """ base36 = basehash.base62(11) @classmethod def from_model(cls, obj): if obj.pk is None: return None return cls.make_hash(obj.pk) @classmethod def make_hash(cls, object_pk): ...

面试官问你B树和B+树,就把这篇文章丢给他

面试官问你B树和B+树,就把这篇文章丢给他缩略图
原文链接 >> https://blog.ouyangsihai.cn 面试官问你B树和B+树,就把这篇文章丢给他 在看这篇文章之前,我们回顾一下前面的几篇关于MySQL的文章,应该对你读下面的文章有所帮助。 InnoDB与MyISAM等存储引擎对比 面试官问你B树和B+树,就把这篇文章丢给他 MySQL的B+树索引的概念、使用、优化及使用...

如何解决排长队问题:让后来的人排到前面去?

假设在非洲的某一个村庄里,只有一口井。每天在井口排队接水的人都很多。有什么办法可以让接水的队伍变得短一些? 美国罗切斯特大学的经济学教授Steven Landsburg指出这样一种方法:让村长规定,晚到的接水村民,可以排到队伍的前头去接水。 举个例子来说,假设你在队伍里排了两个小时,眼看快轮到自己了。...