zoukankan      html  css  js  c++  java
  • 拉链法的理解

    原理

    把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。
    有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,
    凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。
    T中各分量的初值应为空指针。

    用途

    主要用于解决key值冲突的问题

    场景

    • HashMap就用了拉链法 HashMap的key是转化成了hashcode,这个值是可能重复的,但是为什么HashMap没有问题

    • 求集合交集

    image

    有序集合1{1,3,5,7,8,9}

    有序集合2{2,3,4,5,6,7}

    两个指针指向首元素,比较元素的大小:

    • 如果相同,放入结果集,随意移动一个指针

    • 否则,移动值较小的一个指针,直到队尾

    这种方法的好处是:

    (1)集合中的元素最多被比较一次,时间复杂度为O(n)

    (2)多个有序集合可以同时进行,这适用于多个分词的item求url_id交集

    这个方法就像一条拉链的两边齿轮,一一比对就像拉链,故称为拉链法

  • 相关阅读:
    Linux_day01_primaryCommand
    Variational auto-encoder VS auto-encoder
    python yield generator 详解
    Paper Writing
    DTU_AI lecture 09
    DTU_AI lecture 08
    Attention mechanism
    Energy Journals
    TF + pytorch学习
    expRNN
  • 原文地址:https://www.cnblogs.com/geektcp/p/11518455.html
Copyright © 2011-2022 走看看