浅谈hash讲解课件.pptVIP

  • 16
  • 0
  • 约3.34千字
  • 约 33页
  • 2018-02-09 发布于天津
  • 举报
现在要储存和使用下面的线性表: A: (1,75,324,43,1353,90,46). 我们可以定义一维数组 a:array[1..n] of longint; 我们需要用O(n)的时间来查找某个元素 也可以定义a:array[1..1353] of longint 使a[key]:=key; 也就是我们所学过的桶排序; 这样时间效率会变成O(1) 一次查找 VS 多次查找(找K次) O(K*n) O(K) 桶排的弊端 A:(18,75,60,43,54,90,46) h[i]:=i mod 13 0 1 2 3 4 5 6 7 8 9 10 11 12 18 mod 13=5 75 mod 13=10 60 mod 13=8 43 mod 13=4 54 mod 13=2 90 mod 13=12 46 mod 13=7 使用一个下标范围比较大的数组a来存储元素, 设计一个函数h,对于要存储的元素node, 取一个关键字key,算出一个函数值h(key),把h(key)作为数组下标,用a[h(key)]存储node 也可以简单理解为,按照关键字为每一个元素进行“分类”,然后将这个元素储存在相应的“类”所对应的地方 A:(18,75,60,43,54,90,46,5,15,33) h[i]:=i

文档评论(0)

1亿VIP精品文档

相关文档