美文网首页
字典树和hash

字典树和hash

作者: Joseph_Z | 来源:发表于2017-07-24 16:14 被阅读0次

Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。

典型应用是用于统计和排序大量的字符串(但不仅限于字符串)。

它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。

它有3个基本性质:

    1.根节点不包含字符,除根节点外每一个节点都只包含一个字符。

    2.从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。

    3.每个节点的所有子节点包含的字符都不相同。

注意:不用动态数组或者动态申请空间的话复杂度会达到26^n次方,在建树的时候最好用动态数组和malloc链表。最好不要用结构体进行封装,有可能会爆栈。

查询复杂度与树高有关,基本O(len)

Hash:

hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等条件中里面存取数据,其实就是一种映射。

Hash最重要就是Hash映射和冲突处理,

Hash可以拿来判重和统计数目,主要把字符串映射为整数,尽量选比较大的素数。

相关文章

  • 字典树和hash

    Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。 典型应用是用于统计和排序大量的字...

  • NSDictionary实现原理

    字典原理 NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash...

  • NSDictionary的实现原理

    iOS中NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函...

  • NSDictionary实现原理

    NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函数设计的...

  • iOS底层原理:NSDictionary原理

    NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的。 关于hash表 想...

  • NSDictionary实现原理

    字典原理 NSDictionary(字典)是使用hash表来实现key和value之间的映射和存储的 方法:- (...

  • iOS NSDictionary内部实现

    NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的。hash函数设计的好...

  • 字典的本质

    NSDictionary(字典)是使用hash表来实现key和value之间的映射和存储的。字典的底层是通过has...

  • Redis 数据结构与内存管理策略(下)

    字典(dict) dict字典是基于hash算法来实现,是Hash数据类型的底层存储数据结构。我们来看下redis...

  • python字典与集合

    python字典 特点: python中唯一的映射类型就是字典。 在映射类型对象里,hash值(key)和指向的对...

网友评论

      本文标题:字典树和hash

      本文链接:https://www.haomeiwen.com/subject/mgubkxtx.html