zoukankan      html  css  js  c++  java
  • 散列

    散列

    散列表就是一个包含关键字的具有固定大小的数组。其优势在于以常数平均时间执行插入、删除和查找工作。

    解决冲突

    • 分离链接法:数组中包含的是一个链表,链表中的是冲突了的关键字

    • 开放地址法:完全使用数组实现。如果有冲突发生,就尝试另外的单元,尝试h0(X),h1(X),h2(X),其中hi(X) = Hash(X) + F(i)。由于不同的F(i),因此分为:

      • 线性探测法:F(i) = i 装填因子不能接近于1
      • 平方探测法:F(i) = i^2 装填因子不能大于0.5
      • 双散列:F(i) = i * Hash2(X),也即就是再使用一个哈希函数

    再散列

    对于使用平方探测的开放定址散列法,如果表的元素填的太满,那么操作的运行时间就会开始消耗的过长,且Insert操作可能会失败。所以进行再散列,也就是扩充原来表的大小。一般扩充为比原来的两倍大,且为素数的一个数

    可扩散列

    当散列表过大而装不进主存的时候使用。

  • 相关阅读:
    jQuery获取Select选择的Text和 Value(转)
    android学习---EditText
    android学习---Activity
    android学习---LinearLayout
    android学习---布局Layout
    android颜色码制表
    java面试题二
    java面试题一
    基本排序算法java实现
    Integer与int的区别
  • 原文地址:https://www.cnblogs.com/evansyang/p/5871267.html
Copyright © 2011-2022 走看看