C++编程《第15课 哈希表应用举例(1)》教学课件.pptxVIP

  • 4
  • 0
  • 约4.63千字
  • 约 20页
  • 2026-03-13 发布于广西
  • 举报

C++编程《第15课 哈希表应用举例(1)》教学课件.pptx

第15课哈希(2):哈希的应用

学习目标1、学习使用哈希表2、熟悉哈希冲突处理的模板程序3、了解哈希表处理额问题

课堂练习

1、找整数【问题描述】找整数。给出n个正整数,有m个询问,每个询问问一个正整数,询问改正整数是否在n个正整数中出现过.【输入】第1行,两个正整数n和m。接下来n行,每行一个正整数,表示已有的数。再接下来m行,每行一个正整数,表示一次询问。【输出】共m行,每行输出“Yes”或者“No”,表示一次询问的答案。数据范围:n,m≤105【分析】因为是m个询问,而且m较大,如果进行排序后二分查找,则排序需要的复杂度为nlog2n,然后进行m次二分查找,总复杂度为nlog2n+mlog2n,最多三百万左右的操作规模。其实二分搜索是可以胜任的。这里,我们用哈希的思想来做。

1、找整数【基本思路】1、散列函数(哈希函数):f(key,size)=key%size;2、处理冲突的方式:开放定址法:线性探测;插入元素:从bukets开始探测,直到探测到空地址进行插入; while(value[buckets]!=keyvalue[buckets]){buckets=(buckets+1)%array_size;}value[buckets]=key;//每次

文档评论(0)

1亿VIP精品文档

相关文档