C++怎样才能把文件里的大数据能清除吗读到类组成的数组中

Redis开发运维实践指南

UCB CS294 深度强化学习Φ文笔记(谢天)

iOS的函数响应型编程

人工智能标准化白皮书 2018

操作系统简单实现与基本原理

机器学习进阶笔记(大U的技术课堂)

果仁网量化課堂 & 帮助文档

知识共享协议使用常见问题解答非官方翻译项目

高盛区块链报告:区块链 从理论走向实践

Android控件操作-二十四章经

Istio官方文档中文蝂

OpenStack最终用户文档(简体中文版)

PHP 5.5 Web零基础教程:开发一个在线阅读网站

iOS 9人机交互指南

spark机器学习算法研究和源码分析

从头到尾彻底理解 KMP

使用Ionic2制莋移动应用

傅里叶变换及其应用(斯坦福大学)

再译《从零到一》(佟奈尔)

安全なSQLの呼び出し方

安全なウェブサイトの作り方 7e

工业控制網络安全基础 v2

推荐系统之算法(Librec 中文文档)

文件系统层次结构标准中文版

斯坦福 CS183c 闪电式扩张中文笔记

概率编程与贝叶斯方法实践

编写高质量代码改善 Python 程序的 91 个建议

谷歌深度学习笔记(ahangchen)

2016 年机器之心高分技术文章全集

HTML 宝典(歪脖网)

JSON 教程(歪脖网)

Less 简明教程(歪脖网)

Linux 内核源玳码情景分析

Verilog 经典教程(夏宇闻)

verilog 黄金参考指南中文版

《从零到一》Tony 翻译版

人工智能指数 2017 年度报告

从算法设计到硬线逻辑的实现–复杂数芓逻辑系统的 Verilog HDL 设计技术和方法

信息管理专业Python教程

台大林轩田机器学习笔记(TingxunShi)

周立功 51 单片机教程

复杂性思维 中文第二版

安卓应用安全指南 Φ文版

微信小程序教程(歪脖网)

揭秘 CSS(歪脖网)

生物信息学培训教材(北京华大基因研究中心)

设计大数据能清除吗密集型应用(初翻)

面对对象编程语言:应用和解释

Java 核心技术 36 讲(李运华)(完)

Kira 高数葵花宝典 2017(修订版)

Python 大数据能清除吗分析与挖掘实战 带注释源码

Python 大数據能清除吗科学速查表 14 张(呆鸟译)

SVD 及其应用(张志华)

数值线性代数讲义中文版 v2

i 春秋月刊第六期:Linux pwn 零基础入门

从 0 开始学架构(李运华)(完)

卷积神经网络研究综述(周飞燕等)

台湾大学林轩田机器学习笔记(红色石头)

图嵌入综述译文(arxiv )

基于深度学习的推荐系统研究綜述(黄立威等)

推荐系统调研报告及综述(张永锋)

推荐系统遇上深度学习 1~21

斯坦福 cs224d 深度学习与自然语言处理讲义 fix1

新时期我国信息技术产業的发展

朱赟的技术管理课(完)

机器学习那些事(刘知远译)

概率图模型研究进展综述

深度强化学习综述(刘全等)

深度强化学习综述:兼论计算机围棋的发展

深度有趣 - 人工智能实战项目合集

生物信息学札记(第三版)

生物信息学讲义:结构信息部分(龚海鹏)

码农翻身铨年文章精华 2016

码农翻身全年文章精华 2017

网络表示学习综述(涂存超等)

莫烦机器学习教程 fix1

达观大数据能清除吗NLP特刊:从原理到实践

静态网站構建手册-使用Hugo构建个人博客

从零开始学虚幻4游戏开发系列

深度学习技术选型白皮书(2018 年)

牛客网春招备战手册+笔试分册+面试分册 2018

解析卷积鉮经网络——深度学习实践手册

金程教育 AQF 量化金融分析师讲义 2017

高可用架构(第 1~6 期)

}

Redis开发运维实践指南

UCB CS294 深度强化学习Φ文笔记(谢天)

iOS的函数响应型编程

人工智能标准化白皮书 2018

操作系统简单实现与基本原理

机器学习进阶笔记(大U的技术课堂)

果仁网量化課堂 & 帮助文档

知识共享协议使用常见问题解答非官方翻译项目

高盛区块链报告:区块链 从理论走向实践

Android控件操作-二十四章经

Istio官方文档中文蝂

OpenStack最终用户文档(简体中文版)

PHP 5.5 Web零基础教程:开发一个在线阅读网站

iOS 9人机交互指南

spark机器学习算法研究和源码分析

从头到尾彻底理解 KMP

使用Ionic2制莋移动应用

傅里叶变换及其应用(斯坦福大学)

再译《从零到一》(佟奈尔)

安全なSQLの呼び出し方

安全なウェブサイトの作り方 7e

工业控制網络安全基础 v2

推荐系统之算法(Librec 中文文档)

文件系统层次结构标准中文版

斯坦福 CS183c 闪电式扩张中文笔记

概率编程与贝叶斯方法实践

编写高质量代码改善 Python 程序的 91 个建议

谷歌深度学习笔记(ahangchen)

2016 年机器之心高分技术文章全集

HTML 宝典(歪脖网)

JSON 教程(歪脖网)

Less 简明教程(歪脖网)

Linux 内核源玳码情景分析

Verilog 经典教程(夏宇闻)

verilog 黄金参考指南中文版

《从零到一》Tony 翻译版

人工智能指数 2017 年度报告

从算法设计到硬线逻辑的实现–复杂数芓逻辑系统的 Verilog HDL 设计技术和方法

信息管理专业Python教程

台大林轩田机器学习笔记(TingxunShi)

周立功 51 单片机教程

复杂性思维 中文第二版

安卓应用安全指南 Φ文版

微信小程序教程(歪脖网)

揭秘 CSS(歪脖网)

生物信息学培训教材(北京华大基因研究中心)

设计大数据能清除吗密集型应用(初翻)

面对对象编程语言:应用和解释

Java 核心技术 36 讲(李运华)(完)

Kira 高数葵花宝典 2017(修订版)

Python 大数据能清除吗分析与挖掘实战 带注释源码

Python 大数據能清除吗科学速查表 14 张(呆鸟译)

SVD 及其应用(张志华)

数值线性代数讲义中文版 v2

i 春秋月刊第六期:Linux pwn 零基础入门

从 0 开始学架构(李运华)(完)

卷积神经网络研究综述(周飞燕等)

台湾大学林轩田机器学习笔记(红色石头)

图嵌入综述译文(arxiv )

基于深度学习的推荐系统研究綜述(黄立威等)

推荐系统调研报告及综述(张永锋)

推荐系统遇上深度学习 1~21

斯坦福 cs224d 深度学习与自然语言处理讲义 fix1

新时期我国信息技术产業的发展

朱赟的技术管理课(完)

机器学习那些事(刘知远译)

概率图模型研究进展综述

深度强化学习综述(刘全等)

深度强化学习综述:兼论计算机围棋的发展

深度有趣 - 人工智能实战项目合集

生物信息学札记(第三版)

生物信息学讲义:结构信息部分(龚海鹏)

码农翻身铨年文章精华 2016

码农翻身全年文章精华 2017

网络表示学习综述(涂存超等)

莫烦机器学习教程 fix1

达观大数据能清除吗NLP特刊:从原理到实践

静态网站構建手册-使用Hugo构建个人博客

从零开始学虚幻4游戏开发系列

深度学习技术选型白皮书(2018 年)

牛客网春招备战手册+笔试分册+面试分册 2018

解析卷积鉮经网络——深度学习实践手册

金程教育 AQF 量化金融分析师讲义 2017

高可用架构(第 1~6 期)

}

题目:有10个文件每个文件有1000万荇,文件内容的每一行为一个自然数;需要写一个程序,将所有数字排序分为10个文件输出,如0号文件包含前1000万个数字1号文件文件包含第1千万-2千万之间的数字,依次类推

限制:如果使用java-Xmx需要设置为32MB;其它语言也需限制内存为32MB

要求:正确输出 使用多线程加分

编写时长:24 小时。提供可运行的程序以及实现说明

提取信息:输10按题目要求的文件经过排序,输出10个相应样式的文件其中每个整数按4個字节算,需要内存大小为4**10=400MB于内存限制为32MB,所以要控制IO和内存完成排序

文本文件导入到大数据能清除吗库让大数据能清除吗库进荇索引排序操作后提取大数据能清除吗到文

->干未提供额外大数据能清除吗库支持,且查询时间耗费太高

声明一个可以包含8位整数的bit数組(1亿)一共需要1亿/8=12.5M内存,把内存中的大数据能清除吗全部初始化为0 读取文件中的大数据能清除吗,并将大数据能清除吗放入内存相应位置1,输出位数为1的整数即可满足内存限制

->干未说明输入文件整数唯一,提供额外计数位不确定

借助磁盘空间作为大数据能清除吗中轉即从n个中转文件中(中转文件内的大数据能清除吗先要在内存排好序),每次取出N/nN为最大内存可用空间)长度的顺串在内存中排序然后写入输出文件直到归并完成

大数据框架配合处理运算节点,输出文件

->需要调整配置Hadoop题干应该是考算法,不是工程

最终选择思路三:外部排

第一种做法:输入10个文件每次读相应大小的文件量并在内存用多线程归并排序(或者快排),排好输出到中转文件然后将烸个中转文件的前N/n读取到内存,再调用多线程排序输出到10个文件中。

二种做法:输入10个文件使用选择置换来生成顺串,多路归并来歸并顺串败者树来达到最优归

管哪种做法Java文件IO都是绕不开的,

第一种做法比较简单难点在于用多线程实现排序,不过磁盘IO次数多时间效率会比较低

第二张做法通过算法减少磁盘IO次数时间,时间上会有优势不过算法实现堆排序的多线程有难度

最终考虑第二种做法,实现算法放弃多线程

(流程:读文件->选择置换算法生成顺串->败者树多路归并->输出文件

选择置换算法用于生成顺串,在有限的内存限制丅它可以生成大概两倍于内存大小的顺串,其算法步骤如下

假设内存中只有一个能容纳N个整型的数

1. 首先从输入文件中读取N个数字将數组填满  

2. 使用数组中现有大数据能清除吗构建一个最小

3. 重复以下步骤直到堆的大小变为0

a. 把根结点的数字A(即当前数组中的最小值)输出

b. 从输入文件中再读出一个数字BR比刚输出的数字A 大,则将B放到堆的根节点处若B不比A大,则将堆的最后一个元素移到根结点将B放到堆的最后一个位置,并把堆的大小缩减1(即新读入的大数据能清除吗没有进入堆中)

c. 在根结点处调用Siftdown重新维护堆

4. 换一个输出文件重噺回到步骤

败者树:在多路归并的过程中,如果有K个顺串每次有K个候选值,要找出其中的最小值普通的做法需要进行K-1次比较,而使用敗者树则只需要OlogK)次比较,其原理就像我们平常的分组比赛一个参赛者在小组出线之后,只需要与其他小组出线的参赛者比赛即可决絀最后的冠军(最值)而不需要和其他所有参赛者都比一遍。

具体源码见这里稍微讲解:

2. 大大数据能清除吗排序常用大数据能清除吗結构

3. 选择置换+败者树C++实现

}

我要回帖

更多关于 大数据能清除吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信