字符串 发表于 2023-05-04 本文字数: 1.3k 阅读时长 ≈ 5 分钟 字符串键是 Redis 中最基本的键值对类型,被关联的 k-v 既可以是普通文本数据,有可以是二进制数据。 阅读全文 »
冒泡排序 发表于 2023-05-03 本文字数: 145 阅读时长 ≈ 1 分钟 描述冒泡排序会从头开始依次比较 2 个相邻元素的大小,如果顺序错误就交换,直到没有相邻元素需要交换,即排序完成。每进行一次循环,就会有固定一个排序元素到末尾。 补充 由于末尾是目标位置,所以不用放在循环中; 使用 flag 来描述一次循环是否有需要交换的元素,如果没交换,说明已经有序,则不用接下来的循环。 时间复杂度O(n^2) 示例代码golang java
选择排序 发表于 2023-05-03 本文字数: 175 阅读时长 ≈ 1 分钟 描述选择排序首先会找到数组中最小的元素;其次,交换它和第一个元素;再其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换。 如此往复,直到将整个数组排序。 补充 由于需要寻找最小的,所以每个元素都需要比较; 冒泡排序是比较后,满足要求就交换;而选择排序是先比较一轮,最后只交换一次。所以选择排序的步数大概只有冒泡排序的一般,即选择排序比冒泡排序快一倍。 时间复杂度O(n^2) 示例代码golang java
抽象工厂模式 发表于 2023-05-03 本文字数: 313 阅读时长 ≈ 1 分钟 模式描述提供一个创建一系列相关或相互依赖对象的接口,无需指定他们具体的类。 优点 分离了具体的产品类; 有利于产品一致性; 缺点 难以扩展抽象工厂 应用场景 一个系统要独立产品的创建、组合和表示; 一个系统要由多个产品系列中的一个来配置; 提供一个产品库,只显示接口而非实现; 阅读全文 »
观察者模式 发表于 2023-05-02 本文字数: 437 阅读时长 ≈ 2 分钟 模式描述定义对象间的一对多关系,当一个对象的状态发生改变时,所有依赖与它的对象都得到通知并自动被更新。 优点 目标和观察者解耦; 支持对观察者的广播通讯; 缺点 依赖准则的定义和维护不当,会引起错误更新,而且很难排查; 应用场景 一个对象改变,其他待定的对象同时需要改变; 解耦 1 个模型中,相互依赖的 2 个方面; 阅读全文 »