当前位置: 首页 > news >正文

360建网站好不好?网站开发语言p

360建网站好不好?,网站开发语言p,seo推广方式是什么呢,山东百度推广代理商从40亿中产生一个不存在的数 问题描述 给定一个文件,包含40亿个非负整数,请你设计一个算法,产生一个不在该文件中的数字。假设你只有1GB内存。 问题分析 40亿整数,在java中,用int存储的话,大概需要40亿✖️4B,大约…

从40亿中产生一个不存在的数

问题描述

给定一个文件,包含40亿个非负整数,请你设计一个算法,产生一个不在该文件中的数字。假设你只有1GB内存。

问题分析

40亿整数,在java中,用int存储的话,大概需要40亿✖️4B,大约16G。现在只有1GB,很明显是不够的,可以考虑位存储,可以减少到原空间的1/32,大约0.5G,满足题目给定的内存要求

实现思路

使用位存储,使用整数对应位置的bit位为1,代表元素存在,为0,代表元素不存在。遍历这40亿个数,将存在的数对应的bit设置为1。对bit数组再次进行遍历,返回为0的第一个下标的对应数字即是40亿中不存在的数。

问题进阶

给定一个文件,包含40亿个非负整数,请你设计一个算法,产生一个不在该文件中的数字。假设你只有10MB内存。

问题分析

只有10MB来存储,很明显使用位存储是不够的。位存储需要0.5GB=500MB的空间。我们可以采用分块思想。一共需要500MB空间,我们只有10MB空间,可以分成50个块,一般向上取整至2的整数次幂,即64个块,40亿大概是4G,即4*2^ 30,总共2的32次方个数,分成64个块,每块2^32/64 = 2 ^26个数,我们可以通过两次遍历来找到不存在的数。

实现思路

首先,我们申请一个长度为64的整形数组,用于统计64个块中元素的个数。遍历这40亿个数,,判断其属于哪个块,可以通过数值大小%64来实现,统计结束后,找到一个数组元素小于2 ^26的对应块。在申请存储一个块元素所需要的bit空间,即2 ^ 26*4B/32 = 2 ^23B =8MB,小于10MB可以实现,遍历40亿个数,将属于该块的元素对应的bit为设置为1。对bit数组再次进行遍历,返回为0的第一个下标的对应数字即是40亿中不存在的数。

20亿个整数中找到出现次数最多的数

问题描述

在20亿个整数中找到出现次数最多的数,假设你只有2GB内存。

问题分析

20亿整数大概是2G=22^30 = 2 ^31,int类型可以存储,不会溢出。可以使map计数,键表示数字,值表示数字出现的次数,这样一个键值对需要8B的存储空间。20亿个数字需要大概2G8B=16GB。只有2GB的情况下,可以进行分块,分为8个块,依次进行处理。

实现思路

将20亿个数字映射为8个块,可以使用哈希函数(模8)来实现。统计每个块中元素的数量,找出最大值,比较八个块的最大值,找到20亿个数中的最大值返回。

总结

海量数据的处理方法通常只有三种,首先是特殊情况,让我们寻找海量数据中的最值,或者前几个最值,可以使用堆来实现,之后可以考虑bit位存储,整数存储对应下标,可以节省到1/32的存储空间,如果内存依旧不够,可以考虑分块,具体的分多少块,可以取需要内存和现有内存的比值,分块可以采用顺序分块,也可以采用哈希分块。

http://www.yayakq.cn/news/123723/

相关文章:

  • 黑龙江省建设造价协会网站网站做到赣州第一名要多少钱
  • 网页制作免费的素材网站微信网站cms
  • 上海网站排名前十wordpress基本
  • 江苏省品牌专业建设网站定制网站 北京
  • wordpress建站企业域名注册西部数码
  • 怎么做视频的网站wordpress 数据库 插件
  • 学年论文网站建设超酷网站模板
  • 可以免费做演播的听书网站登陆网站密码不保存怎么做
  • 买空间域名做网站wordpress 等待响应
  • 有哪些网站是静态网站seo网站编辑优化招聘
  • 济宁 网站建设专门做二手书网站或app
  • 网页设计网站免登陆iis 网站启动不了
  • 网站制作需求分析2022年进口博览会上海
  • vue做的网站多么音乐网站系统怎么做
  • 合肥做网站工作室企业网站备案座机号
  • 嘉定企业网站开发建设上传了网站源码怎么做
  • 网站建设的相关政策金阳建设集团网站
  • 我的网站在百度搜不到如何建设众筹网站
  • 免费观看电视剧网站网站建立的企业
  • 一个微信公众号可以做几个网站淮南学校网站建设电话
  • 巴中商城网站建设网站的扁平化设计理念
  • 聚通装潢口碑好不好淄博seo费用
  • 海报模板在线制作免费网站沈阳建站公司模板
  • 郑州网站建设哪个好专业的网页设计培训
  • 阿里云网站备案入口中国国家数据统计网
  • 工单系统设计阿克苏网站建设优化
  • 怎么做自己的优惠券网站大连城市建设集团网站
  • 彩票网站为啥链接做两次跳转宿迁二手房58同城急售
  • 那个网站可教做课件好黄页88官网首页
  • 龙海网站制作成功营销案例分享