数据结构
五癫
武汉理工大学软件工程
展开
-
数据结构-最小完美哈希和保序最小完美哈希函数
1.什么是最小完美哈希函数?在满足完美哈希(不会产生冲突(单射))的前提下,key值数量(假设为n)和哈希表中槽的数量(假设为m)相等,即 m = n,此种哈希函数被称为最小完美哈希函数(其实相当于数学中双射的概念)2.什么是保序最小完美哈希函数?若一个最小完美哈希函数同时满足对于xi2.如何构造最小完美哈希函数?保序最小完美哈希函数是针对特定函数集合的,所原创 2017-08-09 15:43:34 · 4141 阅读 · 0 评论 -
数据结构-完美哈希
1.什么是完美哈希哈希的基本缺陷,即使构造了全域哈希,还是不一定能解决不好的键集输入的问题,能不能找到一个完美的解决方案呢?能不能保证在任何情况下查找的复杂度都在Θ(1)呢?完美哈希函数(Perfect Hash Function,简称PHF)就是没有冲突的哈希函数,也就是,函数H将N个KEY值映射到M个整数上,这里 M>=N ,而且,对于任而且,对于任意的 KEY1 ,KEY2 ,H转载 2017-08-06 19:56:15 · 2829 阅读 · 0 评论 -
数据结构-全域哈希及其构造
1.全域哈希的诞生和定义诞生:哈希的根本缺陷:对于任意哈希函数而言,都存在一个不好的健集,使得所有的健都会哈希到同一个槽里去,那么如何解决这种情况呢?如何防止对某个键集永远有较差的表现?如何防止竞争对手使用这个键集来降低你的性能表现? 一个词解决这个问题 —— random!全域哈希的方法就是随机选择一个哈希函数H(当然不是每次操作都选择一个哈希函数,而是构建一个哈希表的时候随机选转载 2017-08-06 14:27:52 · 1039 阅读 · 0 评论 -
数据结构-AVL树和红黑树的对比
1.红黑树并不追求“完全的平衡”,它只要求达到部分的平衡,降低了对旋转的要求,从而提高了性能。2.红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作,由于它的设计,任何不平衡都会在三次旋转之内解决。3.还有一些更好的,但实现起来更复杂的数据结构 能够做到一步旋转之内达到平衡,但红黑树能够给我们一个比较“便宜”的解决方案。红黑树的算法时间复杂度和AVL相同,但统计性能比AV原创 2017-08-13 23:04:03 · 1770 阅读 · 0 评论 -
数据结构-平衡二叉树之-红黑树
概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:Sky Wang 于 2013-08-08 概述:R-B Tree,又称为“红黑树”。本文参考了《转载 2017-08-13 19:23:49 · 288 阅读 · 0 评论 -
数据结构-平衡二叉树之一AVL树详解
1.转载 2017-08-13 14:45:15 · 1509 阅读 · 0 评论 -
数据结构-二叉排序树
二叉查找树定义:又称为是二叉排序树(Binary Sort Tree)或二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 1) 若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2) 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; 3) 左、右子树也分别为二叉排序树; 4) 没有键值相等的节点。 二叉查找树的性质:对二叉查转载 2017-08-13 13:07:16 · 434 阅读 · 0 评论 -
数据结构-二叉树、满二叉树、完全二叉树
1.二叉树二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+12.满二叉树满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点原创 2017-08-13 12:40:12 · 572 阅读 · 0 评论 -
数据结构-哈希表原理详解
1.什么是哈希表(摘自百度百科):散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 2.哈希表原理(摘自百度百科)给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关...原创 2017-08-05 14:05:35 · 6606 阅读 · 0 评论 -
算法系列-bitmap算法详解和实现
1.什么是bitmap?我们可以将bitmap看成是一种数据结构,所谓的Bit-map就是用一个(或几个)bit位来标记某个元素对应的state(value)。最基本的情况,使用1bit标示一个关键字的状态(可标示两种状态),但根据需要也可以使用2bit(标示4种状态),3bit(标示8种状态),当一个状态标示需要的位数达到32bit时,就演变成来一个整型数组了。2.优点和缺点原创 2017-08-29 14:40:19 · 3915 阅读 · 0 评论