博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
哈希表(散列)
阅读量:2339 次
发布时间:2019-05-10

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

哈希表(散列)

基本介绍

  1. 哈希表又称之为散列表,根据关键码值(key value)直接进行访问的数据结构。
  2. 原理:常规的查找数据通过遍历或者是比较,为减少此类步骤的出现,发明了散列技术:
  • 散列技术是在记录的存储位置和他的关键字之间建立一个确定的对应关系f,是的每一个关键字key对应一个存储位置f(可以)。

  • 对应关系 f()称之为散列函数,又称为哈希函数。

  • 将关键值的存储在一块连续的存储空间,这块连续的存储空间称之为散列表或者是哈希表。

  • 关键字对应的记录存储位置称之为散列地址。

    内存地址《---》散列函数《---》关键字存储位置 = 散列函数(关键字)
  1. 特性:
  • 散列技术是一种存储方法,也是一种查找方法。数据与数据之间没有逻辑关系,仅仅与关键字相关联
  • 散列查找适用于解决关键字和记录一一对应的问题,对于同一个关键字对应多种情况不适应,如:根据性别查找人员不适用,根据学号查找人员使用。
  • 散列表适用于定值查找,对于范围查找不适用。如:在一个班级中查找18到20岁的人不适用,适用于查找给定学号的某个人
  • 散列表不具备一般数据结构的操作性质,没办法找出最值,长度,排序等
  1. 应用——将散列表应用于缓存.
  • 如果将所有的数据都存储在数据库中,对数据库的频繁调用会增加数据库的压力。为了缓解数据库的压力,引入缓存机制。在操作层面与数据库之间建立起缓存区。常用的缓存产品Redis,Memcache。也可以自己用哈希表来写缓存,先将数据加载到内存中去。就是说数据不直接放到数据库中,而是先放到哈希表中
  • 常用的哈希表结构
    • 数组+链表
    • 数组+二叉树

转载地址:http://bqgpb.baihongyu.com/

你可能感兴趣的文章
Unable to locate package错误解决办法
查看>>
关于service中添加Transaction注解后,service无法注入bean
查看>>
linux shell 自定义函数(定义、返回值、变量作用域)介绍
查看>>
写自己的ASP.NET MVC框架(上)
查看>>
C++和C在linux下编程和与在WINDOWS下有什么区别
查看>>
CSS 的优先级机制[总结]
查看>>
linux shell 数组建立及使用技巧
查看>>
IEnumerator 协程 全称协同程序
查看>>
java实现冒泡排序
查看>>
spring boot 初试,springboot入门,springboot helloworld例子
查看>>
Spring中配置和读取多个Properties文件--转
查看>>
使用JNI进行Java与C/C++语言混合编程(1)--在Java中调用C/C++本地库
查看>>
Mac 终端命令连接mysql
查看>>
Lua中的数学库
查看>>
多态小结
查看>>
Java连MySQL的驱动mysql-connector-java-5.1.21-bin.jar的安装方法
查看>>
java基础小结
查看>>
线程概念及死锁的理解
查看>>
数据结构之红黑树
查看>>
android学习之——界面 控件 体系 布局
查看>>