博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
哈希表的应用之1:用哈希法统计大数据词频
阅读量:3702 次
发布时间:2019-05-21

本文共 752 字,大约阅读时间需要 2 分钟。

问题背景

给出一篇文章,默认已经分好词了(一个单词一行),问如何统计各个单词的词频?

这个问题可以延伸出其他几个问题

1,热搜的关键词是如何出来的,就是给你一堆的大数据量的词,问你如何从中找出词频最高的几个词。
2,给你一堆大数据量的单词列表,问某个单词第一次出现的位置
3,大数据去重,用哈希表存储后的数据就是去重了的

以上几个问题都可以通过哈希表解决,同时也有取代它的方法,那就是字典树

解决问题

我们首先需要解决的问题就是统计词频,统计词频的原理是这样,把单词作为建(因为每个单词都不同,具有唯一性),词频作为键值。这样就可以用C++里面的数据结构map完美的cover掉这个问题。

map

代码

#include 
#include
#include
using namespace std;int main(){ map
mapwords; int n; cin>>n; string word; for(int i=0;i
>word; if(mapwords[word]==0){ //看来默认就是0 mapwords[word] = 1; cout<<"first appeared in "<
<<" place"<
::iterator iter; for(iter = mapwords.begin(); iter != mapwords.end(); iter++) cout<
first<<' '<
second<

测试样例

这里写图片描述

你可能感兴趣的文章
莫队算法
查看>>
matlab进行微分运算
查看>>
数学规划模型
查看>>
层次分析模型
查看>>
灰色预测模型
查看>>
蒙特卡罗方法
查看>>
BP神经网络算法
查看>>
BP神经网络数据预测实例代码
查看>>
粒子群算法
查看>>
遗传算法
查看>>
蓝桥杯--拉马车
查看>>
Matlab常用求解数学规划模型代码
查看>>
A开头前缀
查看>>
B、C开头前缀
查看>>
D开头前缀
查看>>
E、F开头前缀
查看>>
A开头六级词汇
查看>>
G、H、I开头前缀
查看>>
B开头六级词汇
查看>>
J、K、L开头前缀
查看>>