liuqinh2s' blog

Do something cool!


  • 首页

  • 关于

  • 标签

  • 归档

  • 编程笔记

  • 新闻

  • 收藏

  • 思考

  • 前端面试

  • 力扣

  • 计算机科学

  • 量化交易

  • 英语

  • 导航

  • 阅读

  • 搜索

快速排序

发表于 2019-02-19 | 更新于: 2025-08-21
字数统计: 747

快速排序算法是一个原理非常简单易懂的算法,但如果现场手写的话又有多少人能写得出来呢?我今天又试了一下,发现还是存在一些认知上的问题。首先我明白快排的核心操作是:选取一个中枢,然后把小于中枢的放到左边,大于中枢的放到右边。但我发现时隔仅仅一年多,我居然已经忘了这个操作的英文名字了。直到我在写这篇文章的时候才突然想起来:partition 操作。

在使用 partition 操作的前提下,递归解决问题就 OK 了。

阅读全文 »

并查集

发表于 2019-01-19 | 更新于: 2025-08-21
字数统计: 420

并查集

什么是并查集

并查集的核心是parent指针,一个结点可以找到自己所属的结点。从而把结点归类。有两个核心操作:

  • Union(用来合并两个并查集)
  • Find(用于查找一个结点的parent)

所以并查集可以叫做:union-find data structure。

阅读全文 »

KMP算法

发表于 2019-01-17 | 更新于: 2025-08-21
字数统计: 1,908

KMP 算法

KMP 算法用来在一个文本中查找模式串,如下图所示:

文本匹配例子:

我们把上面那个长字符串的称为文本,下面这个短的称为模式串。我们的目的是查看ABADABAD是否出现在文本中。

不必要的比较:

跳过不必要的比较:

KMP 算法的核心作用在于帮助模式串顺利的跳过很多不必要的比较(模式串没有任何前缀与文本匹配),直接后移到一部分前缀已经匹配的位置,开始下一次的比较。更准确的讲是移动到:最长真前后缀匹配的位置,如上图所示的ABA。

阅读全文 »

蓄水池算法

发表于 2019-01-15 | 更新于: 2025-08-21
字数统计: 852

蓄水池算法(Reservoir Sampling)

这个算法真的很奇妙,它的核心是一个数学证明。外延,或者说应用场景是:

  1. $C_n^k$,也就是从大小为 n 的样本集中随机取 k 个不同的样本
  2. 流式数据,或者说无法直接根据索引拿到数据(更加不可能一遍加载到内存)
阅读全文 »

$\lim\limits_{x\rightarrow 0} \frac{\sin x}{x} = 1$的证明

发表于 2019-01-07 | 更新于: 2025-08-21
字数统计: 393

高数中的第一个证明,可能就是这个$\lim\limits_{x\rightarrow 0} \frac{\sin x}{x} = 1$的证明了。下面给出这个极限的证明,用到了解析几何(作图法)。

阅读全文 »
1…161718…22
liuqinh2s

liuqinh2s

107 日志
45 标签
RSS
GitHub Twitter
Links
  • liam
  • jiyanggg
  • 曾小乱 – 在描绘他的生活倒影
© 2025 liuqinh2s | Site words total count: 118.5k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4