javascript 哈希表

2018-02-05
阅读 10 分钟
21.7k
哈希表(hash table )是一种根据关键字直接访问内存存储位置的数据结构,通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数

javascript 前缀Trie

2018-01-27
阅读 7 分钟
7.7k
前缀Trie, 又叫字符Tire, trie来自单词retrieval, 一开始念作tree,后来改念try, 毕竟它与树是不一样的东西。网上许多文章都搞混了trie与树。 trie是通过”边“来储存字符的一种树状结构,所谓边就是节点与节点间的连接。trie每条边只能存放一个字符。

javascript 哈希树

2018-01-26
阅读 3 分钟
2.4k
n个不同的质数可以“分辨”的连续整数的个数和他们的乘积相等。“分辨”就是指这些连续的整数不可能有完全相同的余数序列。(这个定理的证明详见:[链接])

javascript 后缀数组

2018-01-26
阅读 7 分钟
5.3k
后缀数组是处理字符串的利器, 它本身涉及许多辅助概念. 基本概念 1.1子串 表示字符串的某一小段, 如awbcdewg拥有 awbc, awbcd, awbcde等子串。 1.2后缀 后缀是字符串从某个位置起到达末尾的一种特殊子串。后缀可以等于自身,相等于从一个字符开始. 假令我们设计一个取后缀的函数, 它可以这样实现: {代码...} 后缀必须...

计数排序,桶排序与基数排序

2018-01-21
阅读 9 分钟
10.2k
一般算法能做到O(logn),已经非常不错,如果我们排序的对象是纯数字,还可以做到惊人的O(n)。涉及的算法有计数排序、基数排序、桶排序,它们被归类为非比较排序。

javascript 最长公共子序列

2018-01-16
阅读 8 分钟
16.1k
最长公共子序列(Longest Common Subsequence LCS)是从给定的两个序列X和Y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。LCS问题的算法用途广泛,如在软件不同版本的管理中,用LCS算法找到新旧版本的异同处;在软件测试中,用LCS算法对录制和回放的序列进行比较,在基因工程领域,用LCS算法检查...

javascript背包问题详解

2018-01-13
阅读 16 分钟
29.7k
打算好好学一下算法,先拿背包问题入手。但是网上许多教程都是C++或java或python,大部分作者都是在校生,虽然算法很强,但是完全没有工程意识,全局变量满天飞,变量名不明所以。我查了许多资料,花了一个星期才搞懂,最开始的01背包耗时最多,以前只会枚举(就是普通的for循环,暴力地一步步遍历下去),递归与二分,...