zoukankan      html  css  js  c++  java
  • 哈希表算法

    1:哈希表概述:

         哈希表是种数据结构,它可以提供快速的插入操作和查找操作。哈希表也有一些缺点它是基于数组的,数组创建后难于扩展,某些哈希表被基本填满时,性能下降得非常严重。这个问题是哈希表不可避免的,即冲突现象:对不同的关键字可能得到同一哈希地址。 

    2:特点:

        哈希表是基于数组的,因此它的扩展性不强,当哈希表被放满数据时,性能下降,

        也没有一种简便的方法可以以任何一种顺序〔例如从小到大〕遍历表中数据项。如果需要这种能力,就只能选择其他数据结构。
        然而如果不需要有序遍历数据,并且可以提前预测数据量的大小。那么哈希表在速度和易用性方面是无与伦比的。

       哈希表运算得非常快,在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比快,树的操作通常需要O(N)的时间级。哈希表不仅速度快,编程实现也相对容易。

    3:举例:

         哈希表最常见的例子是以学生学号为关键字的成绩表,1号学生的记录位置在第一条,10号学生的记录位置在第10条...
         如果我们以学生姓名为关键字,如何建立查找表,使得根据姓名可以直接找到相应记录呢?
         用上述得到的数值作为对应记录在表中的位置,得到下表:
        上面这张表即哈希表。
         如果将来要查李秋梅的成绩,可以用上述方法求出该记录所在位置:
         李秋梅:lqm 12+17+13=42 取表中第42条记录即可。
         问题:如果两个同学分别叫 刘丽 刘兰 该如何处理这两条记录?
         这个问题是哈希表不可避免的,即冲突现象:对不同的关键字可能得到同一哈希地址。
    4:哈希表构造方法:
         1:直接定址法   2:数据分析法 3:除留余数法 4:折叠法 5:平方取中法
  • 相关阅读:
    java面向对象(五)之多态
    java集合(list,set,map)
    jQuery基础
    Numpy详解
    Pandas详解一
    Linux 解压缩
    Linux 磁盘挂载
    Linux 磁盘管理
    su和sudo命令详解
    Linux查看文件命令
  • 原文地址:https://www.cnblogs.com/2714585551summer/p/5740448.html
Copyright © 2011-2022 走看看