博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构:哈希表
阅读量:4328 次
发布时间:2019-06-06

本文共 538 字,大约阅读时间需要 1 分钟。

一.简介

哈希表(hash,散列表)是根据关键码值(Key Value)而直接进行访问的数据结构

给定表 M,存在函数 F(key),对于任意给定的关键码值Key,代入函数后能得到包含该关键码值的记录在表中的地址

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

 

hash就是找到一种数据内容能够和数据存放地址之间的映射关系,hash table的查询速度几乎是O(1)的时间复杂度

 

二.散列函数

实际工作中根据不同的情况采用不同的哈希函数(散列函数):

(1) 计算哈希函数的时间

(2) 关键码值 Key 的长度

(3) 哈希表的大小

(4) 关键码值的分布情况

(5) 记录的查找频率

 

1.直接寻址法

 

2.数学分析法

 

3.平方取中法

 

4.折叠法

 

5.随机数法

 

6.除留余数法

 

三.哈希冲突

哈希冲突(hash collision)是不可避免的,如果遇到冲突可以采用开放定址法和链地址法

 

1.开放定址法

开放定址法是遇到冲突的时候查找顺着原来哈希地址查找下一个空闲地址然后插入

 

2.链地址法

链地址法是遇到冲突的时候在原地址新建一个节点空间,然后以链表的形式插入到该节点空间

 

转载于:https://www.cnblogs.com/k5bg/p/11103665.html

你可能感兴趣的文章
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_34、SpringBoot整合Mybatis实操和打印SQL语句...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_35、事务介绍和常见的隔离级别,传播行为...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战...
查看>>