数据结构(1)

  • 哈希表

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。

也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。

这个映射函数叫做散列函数,存放记录的数组叫做散列表。

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希表,函数f为哈希函数。

主要还是思想啦 再有就是解决冲突的方法

应用 : 基数排序 桶排序

乱搞的时候用几个大质数(如100003 100019 100043 100049)来判定

 

  • 字典树

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

典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。

优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。

举道例题吧P2580 于是他错误的点名开始了

纯的trie还是用于查找 是ac自动机的基础

 

  • 哈夫曼树

给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,

称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。

哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

主要就是建树 用一个优先队列取权值最小的两棵子树合并

P2168 [NOI2015]荷马史诗

posted @ 2018-06-16 16:14  hjmmm  阅读(133)  评论(0编辑  收藏  举报