C++程序设计之哈希表

本人学习C++的过程经验及总结,本文内容:
哈希表的概念与使用

操作方法

  • 01

    哈希法又名散列法,因其英文单词Hash而得名,是一种特殊的查找方法。 在记录的存储位置和它的关键字之间建立一个确定的对应关系,使得每个关键字和结构中一个惟一的存储位置相对应,这样查找时只需对节点的关键字进行某种运算就能确定节点在表中的位置。

  • 02

    哈希表把数据的存放地址A定义为记录关键字K的函数,称为哈希(hash)函数。 A=H(k) 一个哈希表包括3个内容 1、确定表的空间范围,即确定哈希函数值域。 2、构造合适的哈希函数。 3、选择处理冲突的方法,即避免出现相同的哈希函数值。

  • 03

    构造哈希表首先要选择合适的哈希函数。

  • 04

    自身函数: 关键字自身作为哈希函数,即H(k)=k,也可自身加上一个常数作为哈希函数,即H(k)=k+c。

  • 05

    数字分析法 设元素是以r为基的数,且表中元素的可能值已知,从中任意取出相当多的元素进行分析,取其中位置分布比较均匀的若干位组成哈希函数值。

  • 06

    平方取中法 把元素值平方后有目的地选取中间的若干位作为哈希地址。

  • 07

    叠加法 把元素值分割成位数相同的部分(最后一部分的位数如果不够,不足位可空缺),然后把这几个部分的叠加和(舍去进位)作为哈希地址。

  • 08

    除余法 选择一个适当的正整数m,用m去除关键字,取其余数作为散列地址,即H(key)=key%m。 注:m应取小于存储区容量的素数。

(0)

相关推荐

  • C++中STL用法超详细总结

    C++中STL用法超详细总结

  • BT下载速度变慢原因解读及应对方法分析

    BT下载速度越来越变得像老牛拉破车一样。只有BT下载速度慢,而其他的网络软件的上网速度并没有变慢(如:打开网页、HTTP下载等)。这到底是怎么一回事呢? 原来,这是因为不少地方的宽带运营商(ISP)对 ...

  • nf_conntrack: table full, dropping packet问题的解决思路

    介绍:nf_conntrack 工作在 3 层,支持 IPv4 和 IPv6,而 ip_conntrack 只支持 IPv4。目前,大多的 ip_conntrack_* 已被 nf_conntrack ...

  • Linux下如何使用BUP备份网页文件

    在进行Linux系统操作的时候,有时需要备份Linux系统上的网页文件,而备份网页文件一般都使用Git软件来备份,今天小编就给大家介绍下一款基于Git的软件—BUP,一起来了解下如何使用BUP备份网页 ...

  • 使用GIT软件备份linux系统上的网页文件

    BUP 并不单纯是Git, 而是一款基于Git 的软件. 一般情况下, 我使用 rsync 来备份我的文件, 而且迄今为止一直工作的很好. 唯一的不足就是无法把文件恢复到某个特定的时间点. 因此, 我 ...

  • 密码强度的测试方法

    大多数密码被破解情景是:攻击者将截获的哈希值变换为纯文字的密码形式,他们使用离线攻击和哈希表或彩虹(rainbow)表数据库。如果想截获密码的哈希值,那么攻击者得事先做很多工作。 在多数情况下,攻击者 ...

  • Apache Web服务器安全设置注意事项

    HTTP拒绝服务攻击 攻击者通过某些手段使服务器拒绝对http应答,这使Apache对系统资源(cup时间与内存)需求巨增,最终造成系统变慢甚至完全瘫痪,Apache服务器最大的缺点是,它的普遍性使它 ...

  • 拒绝服务攻击(DDOS)现状分析

    拒绝效劳技能的立异现已根本尘埃落定,而上个世纪结尾十年的创造也逐步悠远.可是,跟着宽带接入.自动化和如今家庭核算机功用的日益强壮,使得对拒绝效劳进犯的研讨有些剩余.特别是当咱们发现一些本已在90年代末 ...

  • 阿里云使用Linux系统应用配置有哪些问题

    Linux下如何进行FTP设置 ECS Linux服务器如何配置网站以及绑定域名 Ubuntu安装vncserver实现图形化访问 阿里云Docker镜像库 ECS linux中添加ftp用户,并设置 ...