python计算列表中各个区间的个数 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?

[更新]
·
·
分类:互联网
4821 阅读

python计算列表中各个区间的个数

挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?

挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?

2g内存不是重点,80亿数字和取值范围才是重要的:
1. 80亿的数字至少需要加载一遍,才知道有哪些数据
2. 如果是取mapsize 2ˇ16 或者 80亿开方,一个mapltint,intgt大mapsize的空间不到1m
3. 顺序读80亿数据,除以mapsize取余,同一余数放追加同一文件,余数作文件名
4. 顺序读取步骤3产生的所有文件,读取的每个文件时新建mapsize大小的hashmap,统计每个数的次数,再取该hashmap中出现最多次数的整数放到新的map中
5. 依次读完步骤3 产生的文件,就能得到每个文件最多次数的整数map
所有步骤需要80亿数据的两次读盘,一次写盘,mapsize次取最大值,80亿数据取余数

python市场需求量大吗?

Python目前主流的方向有三种:
1、python后端开发
涉及django、flask框架,相对java来说对新手更友好,不过市场需求不大,小众市场
2、python爬虫
一般涉及文本、视频、图片等信息的爬虫,难点在爬虫与反爬虫的对弈,市场需求还可以,但是很容易游走在法律的边缘
3、人工智能
作为数据建模的首选入门语言,主要是涉及科学计算、机器学习、深度学习、图像及文本等,但是难度较高,市场的需求基本上起步是硕士,要求一定的数学及统计学基础,市场需求还可以,但是高学历人才也多竞争蛮激烈的