0 0

不能把数据一次性加入内存的算法题5

有两个很大的文件,每个文件中都有1亿行,每行一个整数。问这两个集合的交集是什么。给定的前提是机器内存不足以完全装入任意一个文件。

需要思路,希望有伪代码。大家集思广益吧!
2012年10月17日 15:36

10个答案 按时间排序 按投票排序

1 0

遇到过类似的问题,我前辈是这样教我弄的。在linux环境下,直接用awk 写一个脚本查询交集的数据,并把它写到另一个文件里头。有时候用脚本语言比用程序语言效率更高.

2012年10月18日 10:30
0 0

咳,问题不把问题描述全了,根本没法回答

2012年10月18日 16:51
0 0

用数据库是最简单的,也是最不用费神的,先读取数据,一次读取一定的数据量,存入数据库中,两个文件中的数据分别存放到两个表中。
然后,分页连接查询,再把查询的结果存到另一个文件中。

2012年10月18日 14:34
0 0

bitmap ...正解...大约占用内存是25m.
http://ansjsun.iteye.com/blog/1168722

可以参看这个..内部是用了bitmap

2012年10月18日 09:24
0 0

1.分别对A.B2个文件进行排序
2.将B中的数分段和A比较,相同的就是交集了。


2012年10月17日 21:28
0 0

merge sort

or

put them into db.

2012年10月17日 17:48
0 0

先排序,文件多路归并排序算法,再比较找交集

2012年10月17日 17:21
0 0

边读边比就可以了,只不过读文件的速度比读内存的速度慢很多而已,功能是可以实现的

2012年10月17日 17:13
0 0

说跟你说读一个大文件就一定要把文件一次性读进内存?
那我只有1G内存,难道我系统中就不能有2G的文件?

2012年10月17日 16:30
0 0

如果允许有一定错误率的话,可以考虑一下Bloom filter

2012年10月17日 16:14

相关推荐

    伙伴算法的内存管理

    6. **错误检测**:在实现过程中,还需要加入错误检测机制,如检查内存溢出、非法访问和数据一致性,以保证系统的健壮性。 总之,基于伙伴算法的内存管理对于UCOSII这样的嵌入式操作系统至关重要,通过优化内存分配...

    数据结构常用算法

    标题《数据结构常用算法》表明本文档将介绍在计算机科学领域中的数据结构领域中所使用的一系列算法。数据结构用于组织和存储数据以便于执行各种操作,比如查找、排序、插入和删除等。数据结构算法的有效性直接影响...

    数据结构与算法常见问题解答

    - **关于算法**:算法是一系列解决问题的步骤集合,其设计和分析是数据结构与算法课程的核心内容之一。 - **怎样写抽象数据类型ADT?**:抽象数据类型(ADT)是一种封装了数据和操作的数据结构类型。定义ADT时,首先...

    数据挖掘FP树算法

    - **时间效率**:仅需一次遍历原始数据,后续操作都在压缩后的FP树上进行,降低了计算复杂性。 - **易于扩展**:可以方便地加入新的条件或约束,如发现闭频繁项集、最大频繁项集等。 4. **代码实现**: - 数据...

    北大MOOC课后题-数据结构-张铭

    - **队列(queue)**:是一种逻辑结构,用于描述数据的先进先出(FIFO)特性,即最先加入队列的数据项将会被最先处理。队列并不直接关联于特定的存储方式或者处理算法,它是一种抽象概念,可以通过多种方式实现,例如...

    哈尔滨工业大学数据结构与算法模拟题.doc

    1. 排序算法:排序分为内部排序(数据在内存中进行排序)和外部排序(数据太大无法一次性装入内存,需要在内存和外部存储间交互进行)。常见的内部排序有冒泡排序、快速排序、归并排序等,外部排序则包括多路归并等...

    页面置换算法(FIFO,LRU,OPT)

    - 通过预知未来的页面访问序列,OPT算法能够计算出每个页面的下一次访问时间。 - 替换离当前时间点最远才被访问的页面。 ### 示例代码分析 给定的部分代码展示了如何使用C++实现FIFO和LRU两种页面置换算法。代码中...

    页面置换算法FIFO:先进先出 NUR: 最近未使用算法

    LRU(Least Recently Used)算法与LFU不同,它只关注最近一次访问的时间,即最近最少使用的页面会被优先替换。LRU在应对数据访问变化方面有较好的适应性,但它只是时间上的局部优化,没有考虑长期访问特性。 为了...

    2015-9-虹软校招内推笔试题-算法岗

    2015年9月,该公司针对应届毕业生进行了一次内推笔试,旨在选拔优秀的算法工程师加入团队。作为一家具有前瞻性和潜力的公司,虹软对算法工程师的要求不仅限于扎实的理论基础,还包括创新思维和实际应用能力。 ...

    缓存淘汰算法之LRU

    2Q 算法和 LRU-2 算法命中率类似,内存消耗也比较接近,但对于最后缓存的数据来说,2Q 会减少一次从原始存储读取数据或者计算数据的操作。 10. Multi Queue(MQ)算法 MQ 算法根据访问频率将数据划分为多个队列,...

    【国开搜题】国家开放大学 一网一平台 24春数据结构与算法01 期末考试押题试卷.docx

    - **重要性分析**:数据结构是软件系统的核心之一,对算法的性能有着至关重要的影响。 **正确选项**:B.软件系统的核心之一 --- **17. 时间复杂度的计算** 题目描述:有如下语句: for(i=1;i*n;i++) sum=sum+i; ...

    c++实现apriori算法(内附测试数据)

    数据通常由多行组成,每行代表一次交易,列出交易中包含的所有项。 `资料表.xls`可能是进一步的文档或结果展示,可能包含了算法运行后的统计信息,如频繁项集列表、关联规则及它们的支持度和置信度等。Excel表格...

    模拟页式储存管理的页面置换算法

    页表属于内存的一部分,查询页表相当于访问一次内存。当页面切换非常频繁的时候,在很短的时间内可能需要查询多次内存,使系统反应时间变慢。因此系统在设计的时加入了快表,将访问频率很高的页的信息存入其中;由于...

    BIRCH聚类算法

    3. **内存友好**:避免一次性加载所有数据,降低了内存需求。 **缺点**: 1. **聚类质量**:相比其他算法(如K-Means或谱聚类),BIRCH的聚类结果可能不太理想。 2. **依赖剪枝策略**:BIRCH的层次结构需要后续聚类...

    用C语言实现常用排序算法

    - 移动次数:衡量元素在内存中的实际移动频率,对于记录交换,每次交换计为3次移动。 - 波动性:比较不同输入情况(正序、逆序、随机)下,算法性能的变化情况。 总结,这个项目提供了对C语言实现的排序算法的深入...

    人工智能-数据挖掘-数据挖掘中关联规则算法及应用的研究.pdf

    尽管Apriori算法是关联规则挖掘领域中最经典的方法之一,但随着研究的深入,它的局限性逐渐显现出来,比如计算效率低、内存占用大等问题。为了解决这些问题,研究人员提出了多种改进方案: - **算法优化**:包括但...

Global site tag (gtag.js) - Google Analytics