经典算法
Hello-Dream
这个作者很懒,什么都没留下…
展开
-
hash算法简单理解(一)
概念:哈希表是一种以键–值存储的数据结构。(key-indexed)目的:输入待查找的值(key),查找到它对应的值。 2.哈希查找步骤: (1)使用哈希函数将被查找的键转换为数组的索引。(不同的键会被转换为不同的索引值理想情况下) (2)处理哈希碰撞冲突。 如果没有内存限制,则直接可以将键值作为数组的索引。查找时间的复杂度为O(1) 如果没有时间限制,则可以使用无序数组进行顺序查找。...原创 2018-05-02 15:53:24 · 2676 阅读 · 0 评论 -
Hash函数简单理解(二)
好的哈希函数可以减少冲突,但是不能完全避免冲突。在查找哈希表和创建哈希表都会遇到冲突;在解决这两种冲突时采用统一的方法。常见的四种方法:(1)开放定址法(2)建立公共溢出区(3)链地址法(4)再哈希法。 (1)开放定址法:核心思想:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,……….直到找出一个不...原创 2018-05-02 17:09:15 · 1792 阅读 · 0 评论 -
计算算法的时间复杂度
(一)概念: 时间频度:一个算法中的语句执行次数称为语句频度或时间频度;记为T(n)。 时间复杂度:若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。*记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。* 例子:T(n) = n^2 - n + 4,则当n趋于无穷大时,f(...原创 2018-05-06 20:54:12 · 4709 阅读 · 0 评论