前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。
一、哈希表初步
在之前的学习中,我们使用数组、字符串、链表等等,假如需要找到某个节点,则都要从头开始,逐一比较,直到找到为止。为了能够直接通过要查找的记录找到其存储位置,我们选择使用哈希表实现此功能。哈希表其实就是通过一个关键码 key 的值而直接进行访问的数据结构。
哈希表的作用是快速判断一个元素是否出现在集合,它通过在关键码和存储位置之间建立一个确定的对应关系 F(key) ,使得每个关键字 key 对应一个存储位置,而这个对应关系,称之为散列函数(哈希函数)。哈希表来解决问题的时候,一般选择以下三种数据结构:数组、集合、映射。
二、最简单的一个数组案例
下面我们来看一个有哈希思想的程序案例,但实质上这个程序和哈希表的应用关系不大。主要是帮助我们理解哈希表是什么,它的核心思想是什么。
对于这个问题,我们可以这样想:想要找出出现频率最高的字母,我们至少需要遍历一遍整个字符串,因此尽可能在这一遍中完成所有任务。
为了实现这个目的,我们可以将26个字母按次序存储在一个数组中,而数组的索引和字母实现了一一对应