搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
盐析白兔
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
C++:在“替代”中迎来“转机”的 2022 年!_c++23发布时间
2
nginx location中uri的截取的实现方法_nginx location获取uri的第一部分
3
taro转rn-ios(个人记录,第一次搞,有误请指正:))_taro rn
4
【python】PyQt5控件尺寸大小位置,内容边距等API调用方法实战解析_pyqt5 控件位置
5
拥抱AI 时代:《LangChain入门指南》高清PDF免费分享!_langchain入门指南pdf版
6
【技术分享】在RK3568上如何烧录MAC_usb烧录mac地址
7
PySide6/PyQT多线程之 编程入门指南:基础概念和最佳实践_pyside多线程
8
树莓派玩转openwrt软路由:5.OpenWrt防火墙配置及SSH连接_openwrt防火墙设置
9
ethercat驱动器接线_协作机器人、关节模组驱动器推荐
10
flask修改密码功能的实现_flask appbuilder中的resetpassword
当前位置:
article
> 正文
大数据处理之Hash哈希表(一)_大数据核心语句 hash
作者:盐析白兔 | 2024-07-15 16:05:42
赞
踩
大数据核心语句 hash
现在的网络公司对于数据的处理的非常看重的。比如拿百度来说,10大热搜词就是从海量的用户搜索的数据中找到的,我们想的很简单,只要把所有用户搜索的数据按搜索次数 排列下来,随便用个快排?归并?取前10种出现频次最高的不同的数据就好了,可是用户搜索的数据实在是太多了。使用快排归并那种内部排序是需要我们使用电脑内存的,现在电脑一般都是4-8G的内存。这可能连数据百分之1都存放不下。数据都不齐全,何谈排序之说?
因此就哈希表这种数据结构。
先从浅来讲。
如果给我们一串数据,每个数据的范围是0-9。那如何求出现频次最高的数据呢?
我们是不是可以定义一个长度为10的数组当作计数器。而数组下标的范围是不是恰好是0-9?那么我们是不是可以遍历这串数据,每次循环出现的数据就把当作计数器的下标,让该下标对应计数器数组元素+1就好了,比如给我一串数据就是
0
1
2
1
第一次是
0
让 计数器[0]加个1
第二次是
1
让 计数器[1]加个1
第三次是
2
让 计数器[2]加个1
最后一个数据是
1
再让计数器[1]加个1
此时计数器的 0 1 2 号下标对应的值分别为 1 2 1,是不是就是我们需要的每个数据对应的出现频次。最后我们只要比较出现频次的高低就可以了。
结果
但是,但是来了,以上的情况非常的巧,数据的大小刚好是0-9十种数,而且计数器也允许我们定义为10个长度
,可是如果我只让你的计数器长度为5呢(或者更少),你会说何必这么抠呢?
其实已经够大方了。你想想,一般的整形数字的范围是多少,是不是2^32个,不算负数的也2^31个了,假如给你一串数据,范围就是正整形,你要定义的计数器长度难道要2^31个?一个占4个字节,到2^30个的时候已经消耗了4G的内存了,然而还有一半还没有定义,况且能给你使用的内存也远远不到4G。如果数据范围是long long 呢double呢,你计数器涉及到数据的还不到冰山一角。这还只是数字,字符串的组合就更多了。。。显然按照以往的思想是行不通的。
扯得远了,就拿10种数据 和 长度为5的计数器 来说。
有什么办法可以塞得下2倍于自己的东西呢?
是不是可以分开塞啊?搬家一趟搬不完的东西是不是可以多搬几次?难道非要一次搬完?
关键是分开搬?
10种数据,每次只能搬5种,是不是划分成2次,很容易联想到奇数偶数的划分。
10种数据,给你的计数器长度是2呢。是不是每次只能搬2种,要搬5次,是不是能联想到对5取余的5种情况呢?
2^31=3万多种数据,给你的计数器长度是10000,是不是每次只能搬1万种,起码要搬4次。按每个数对4取余情况分成4次处理就好了。
代码如下
结果
然而上面的代码还是有点low,能不能改的稍微通用点,不用我们每次修改内容,只要给数据范围,和计数器大小,代码就能自动划分一下呢? 还有在被调用函数里打印等很多问题都太freestyle了
因此有了下面的改进
这将把10万个随机生成的数据中最频数据打印出来。
结果
然而我们知道一般的数据又都是存放在文件中,一般不可能处理程序中生成的无意义的随机数。因此结合文件操作才是我们进一步需要掌握的。
由于没有数据文件,就创建了一个haha.txt ,里面存放10万个随机数。
结果
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/盐析白兔/article/detail/830109
推荐阅读
article
python
hash
函数
_
Python
hash
()
函数
...
python
hash
函数
Python
hash
() is one of the built-in function. ...
赞
踩
article
【
Python
面向
对象
编程】第13篇 特殊
方法
之
__
hash
__
_
python
实验
对象
的
hash
...
本篇介绍
Python
hash
() 函数,以及如何覆盖自定义类中的
__
hash
__
方法
。默认情况下,
__
hash
_...
赞
踩
article
【
Python
基础】从
_
_
hash
_
_
语法深入理解
Python
中
的
哈希
hash
_
python
定义...
总结,我们**重写**`
_
hash
_
_
`(记住这里是重写,因为默认是可
hash
的
,所以本身会有该函数)
的
场景就是,如果我...
赞
踩
article
Hash
(
哈希
)
算法
-
Python
实现_
python
计算
哈希
...
本文详细介绍了
哈希
算法
的工作原理、性质,如单向性和抗碰撞性,并展示了如何在
Python
中实现常见的
哈希
算法
。同时,讨论了...
赞
踩
article
【
Python
】快速了解一个知识点:
Python
中
的
哈希
(
Hash
)_
python
哈希
...
这些数据类型是不可变的,可以作为字典的键,因为它们具有唯一的
哈希
值。
哈希
冲突是指不同的对象经过
哈希
算法得到相同的
哈希
值的...
赞
踩
article
2024年
Python
最全哈希算法
的
python
实现与应用
_
pytorch
hash
(1),字节
技术
...
Python
所有方向路线就是把
Python
常用
的
技术
点做整理,形成各个领域
的
知识点汇总,它
的
用处就在于,你可以按照上面
的
...
赞
踩
article
Python
中的
__
hash
__
_
def
hash
(
self
,
x)...
官方文档对 可哈希的解释:
hash
ableAn object is
hash
able if it has a
hash
...
赞
踩
article
Python中
hash
算法
_
python
hash
...
本文介绍了Python中的哈希
算法
,包括哈希的概念、特点、常见类型如MD5和SHA系列,以及
算法
碰撞和如何通过加盐防止碰...
赞
踩
article
哈希
表
(
hash
table
)---
python
实现_
python
hash
table
...
文章目录
哈希
表
(基本概念)冲突解决:数据项链和线性探测数据项链线性探测实现Hash_Map
哈希
表
(基本概念)
哈希
表
(ha...
赞
踩
article
安全
高效又易用的
密码
哈希
神器-
bcrypt
算法
解析_
bcrypt
.
hash
(
value
, 10)...
所以采用强
密码
和有效的
密码
管理策略变得越来越重要,因此
bcrypt
应运而生,它是一种
安全
且灵活的
密码
哈希
算法
,能够抵...
赞
踩
article
哈希
表
(
Hash
Table
)和数组(
Array
)是两种常见的
数据结构
,它们各自有自己的特点和用途_...
哈希
表
是一种通过
哈希
函数将键映射到桶中的
数据结构
。它可以在常数时间内完成插入、删除和查找操作。这是因为
哈希
函数可以将键快...
赞
踩
article
MySQL
中的
HASH
详解_
mysql
hash
...
MySQL
中的哈希索引(Hash Index)是一种特殊的数据库索引类型,它利用哈希表(Hash Table)的数据结构...
赞
踩
article
【手写
数据库
内核组件】0202
分段
哈希表Partial
Hash
Table
,
大
并发
场景下提升has...
本文分享了
分段
hash表的实现与原理
,
在高
并发
场景下
,
为了hash操作的一致性
,
又同时提升hash表的吞吐量
,
采用
分段
h...
赞
踩
article
数据处理
——
图像处理
_
np
.
transpose
(
2
,
0
,
1)...
数据处理
——
图像处理
引入库import osimport cv
2
import randomimport torchimp...
赞
踩
article
海量
数据
处理策略之一—
Hash
映射
+
Hash
_
map统计 + 堆/快速/归并排序
_
数据
范围
映射
...
海量
数据
处理策略之一—
Hash
映射
+
Hash
_
map统计 + 堆/快速/归并排序
_
数据
范围
映射
变动
hash
数据
范...
赞
踩
相关标签
python
java
机器学习
编程语言
redis
__hash__
hash
算法
哈希算法
学习
面试
Python
可哈希
hashable
散列表
数据结构
密码学
后端
开发语言