Heap 数据结构一般都被看做是一棵完全二叉树对象,我们知道对于完全二叉树可以使用连续的数组空间来存储各个结点关系。 Heap 是一种非常重要的数据结构,使用 Heap 可以实现高效的排序、构建优先级队列等等。Heap ...
快速排序是 C.R.A.Hoare 于1962 年提出的一种排序算法,该算法如其名一样确实很快。快速排序采用了一种 “汾治策略” 来对序列进行排序。 算法基本思想是:通过一次遍历将序列分成两部分,...
Product Quantization 是一种有效的近似最近邻搜索方法,具有较高的搜索效率和较低的内存消耗。该方法已被广泛应用于图像检索、文本检索和机器学习等领域。 PQ 将高维数据点分成多个子空间,并对每个子空间使用...
局部敏感哈希索引(Locality-Sensitive Hashing,LSH)是一种用于高维数据检索的技术,特别适用于近似最近邻搜索(Approximate Nearest Neighbor Search)的问题。在高...
ANNOY(Approximate Nearest Neighbors Oh Yeah)算法能够帮助我们高效的查找近邻的 N 个向量。其基本原理:就是将所有向量按照空间进行划分,直到子空间小于等于 K 个向量位置。如下图...
最长公共子序列是一个非常实用的问题,它可以描述两段文本之间的 “相似程度”。所谓的子序列就是从原来的序列中取出一部分做成新的序列,新的序列并不要求是连续的。这和子串有些区别,子串也是原始序列中的一...
20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。 在现实生活中,有类问题可将过程划分成多个互相联系的子阶段,我们需要对每一个子阶...