美文网首页
哈希冲突

哈希冲突

作者: sorry510 | 来源:发表于2020-03-04 16:59 被阅读0次
  1. 开放地址法
    线性探测法 f_i(key) = (f(key)+d_i) mod m (d_i = 1, 2, 3, 4,...,m-1)
    二次探测法 f_i(key) = (f(key)+d_i) mod m (d_i = 1^2, -1^2, 2^2,-2^2,...,q^2,-q^2,q<=m/2)
    随机探测法 f_i(key) = (f(key)+d_i) mod m (d_i随机的数列)
  2. 链地址法
  3. 公共溢出区法

线性探测法例子

// init

# define UNSUCCESS 0
# define HASHSIZE 12 /**数组长度**/
# define NULLKEY -32768
typeof struct {
  int *elem;
  int count;
}HashTable;
int m = 0; /**散列表表长**/

// init
Status InitHashTable(HashTable *H) {
  int i;
  m = HASHSIZE;
  H->count = m;
  H->elem = (int *) malloc(m * sizeof(int));
  for(i=0;i<m;i++)
    H->elem[i] = NULLKEY;
  return OK;
}

// 散列函数
int Hash(int key) {
  retrun key % m;
}

// 插入
void InsertHash(HashTable *H, int key) {
  int addr = Hash(key)
  while(H->elem[addr] != NULLKEY) {
    addr = (addr + 1) % m;
  }
  H->elem[addr] = key;
}

// 查询
Status SearchHash(HashTable *H, int key, int *addr) {
  *addr = Hash(key);
  while(H->elem[addr] != key){ // 发生冲突
    *addr = (*addr + 1) % m;
    if(H->elem[addr] == NULLKEY || addr = Hash(key))
      // 如果地址没有被更改或者已经循环到原来的位置了
      return UNSUCCESS;
  }
  return SUCCESS;
}

相关文章

  • 《恋上数据结构与算法一》笔记(十五)哈希表

    目录 哈希表 哈希冲突(Hash Collision) JDK1.8的哈希冲突解决方案 哈希函数 如何生成key的...

  • 《数据结构与算法》总结(六)哈希表

    目录 哈希表 哈希冲突(Hash Collision) JDK1.8的哈希冲突解决方案 哈希函数 如何生成key的...

  • 哈希冲突

    开放地址法线性探测法 = (f(key)+) mod m ( = 1, 2, 3, 4,...,m-1)二次探测...

  • Golang map 如何进行删除操作?

    map 的删除操作 Golang 内置了哈希表,总体上是使用哈希链表实现的,如果出现哈希冲突,就把冲突的内容都放到...

  • 哈希表—链地址法

    冰冻非一日之寒 哈希冲突是不可避免的,所以我们在设计哈希函数的同时,也要设计解决哈希冲突的办法。 哈希表本质就是一...

  • HashMap源码分析详解

    哈希表简介 在哈希表中进行添加,删除,查找等操作,性能十分之高,不考虑哈希冲突的情况下(后面会探讨下哈希冲突的情况...

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

  • HashMap类简介

    1 基本定义 数据结构 数据结构数组链表红黑树用途存储键值对。数组下标为键的哈希值解决哈希冲突解决哈希冲突 定义参...

  • 解决哈希冲突

    解决哈希冲突的三种方法(拉链法、开放地址法、再散列法) https://blog.csdn.net/qq_3259...

  • 哈希冲突详解

    微信搜索?「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍、个人刷题笔记、大厂面经...

网友评论

      本文标题:哈希冲突

      本文链接:https://www.haomeiwen.com/subject/isukhhtx.html