`
qinya06
  • 浏览: 600488 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java海量算法

阅读更多
1、有1亿个浮点数,请找出其中最大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。
2、有一篇英文文章(也就是说每个单词之间由空格分隔),请找出“csdn”着个单词出现的次数,要求效率最高,并写出算法的时间级。
3.假设有1kw个身份证号,以及他们对应的数据。身份证号可能重复,要求找出出现次数最多的身份证号。
4.百度每天都会接受数亿的查询请求, 如何在这么多的查询(Query)中找出高频的Query是一个不小的挑战. 而你的任务则更加艰巨, 你需要在极其有限的资源下来找出这些高频的Query.(使用内存不得多于1MB) 。输入文件是一行一个Query, 以文件结束符结尾。每个Query字节数L(一个汉字两个字节)满足:0
1.对于第一道题目可以发现如果一次读入那么机器的内存肯定是受不了的,因此我们只有想其他方法解决,解决方式为了高效还是得符合一定的该概率解决,结果并不一定准确,但是应该可以作对大部分的数据。
(1.我们可以把1亿个浮点数分组为100W个一组,这样就分为了100个组,第一次在每个组中找出最大的1W个数,第二次查询的时候就是100W个数中再找出最大的1W个数。
PS:100W个数中再找出最大的1W个数用类似快排的思想搞定。
2.第二道题目可以把单词看成一个N进制数,CSDN相当于('c'-'a')*N^3+('s'-'a')*N^2+('d'-'a')*N+('n'-'a'),然后查找这个数出现的次数就是答案,也可以建立一颗字典树,然后去计数!
PS:N可以取32,64等
3.简单进行hash搞定,O(n),如果数据量再扩大我就不知道怎么搞了,用磁盘的话,IO数据是接受不了的
4.hash,然后建立hash[103][100]的节点的表,每次找出出现次数最少的进行替换。
Tags - 海量数据 , 处理
*在处理海量数据时hash + 索引 + 倒排非常有用,在内存空间较小的情况下多通道排序也非常有用!另外,在遇到海量数据求高频问题时,还可以采用采样的手段来处理。
*对于第一道的思路一种更效率是: 1、读入的头10000个数,直接创建二叉排序树。O(1) 2、对以后每个读入的数,比较是否比前10000个数中最小的大。(N次比较)如果小的话接着读下面的数。O(N) 3、如果大,查找二叉排序树,找到应当插入的位置。 4、删除当前最小的结点。 5、重复步骤2,直到10亿个数全都读完。 6、按照中序遍历输出当前二叉排序树中的所有10000个数字。 基本上算法的时间复杂度是O(N)次比较 算法的空间复杂度是10000(常数) 

分享到:
评论

相关推荐

    java排序算法使用及场景说明

    Java 排序算法使用及场景说明 本文档主要介绍了 Java 排序算法的使用和场景说明,包括了五个实践场景的解决方案。 Scenario 1: 找出两个文件共同的 URL 在这个场景中,我们有两个文件 a 和 b,每个文件中存放了 ...

    数据挖掘的java算法

    本篇文章将深入探讨数据挖掘的Java算法,以及如何利用Java进行高效的数据分析。 一、数据预处理 数据预处理是数据挖掘的第一步,包括数据清洗、数据集成、数据转换和数据规约。在Java中,可以使用Apache Commons ...

    基于Java与协同过滤算法的电影推荐系统设计与实现

    《基于Java与协同过滤算法的电影推荐系统设计与实现》 在当今信息爆炸的时代,个性化推荐已经成为提升用户体验、增加用户粘性的重要手段。本项目旨在设计并实现一个基于Java编程语言和协同过滤算法的电影推荐系统,...

    apriori算法java实现

    总之,Apriori算法在数据挖掘中的应用广泛,其Java实现涉及到了数据结构、算法设计以及可能的性能优化。通过理解并实现这个算法,开发者可以进一步掌握数据挖掘的核心技术,并将其应用于实际问题中,比如分析用户...

    数据挖掘经典算法(Java编写)

    本资源包含一系列用Java编程语言实现的经典数据挖掘算法,这些算法是数据挖掘领域的基石,对于理解算法原理及应用具有很高的价值。 1. C4.5算法: C4.5是由Ross Quinlan开发的决策树学习算法,是对ID3算法的改进。C...

    数据挖掘算法Java实现(源码)

    本资源"数据挖掘算法Java实现(源码)"是针对数据挖掘爱好者和开发者的一份宝贵资料,它包含了多种经典的数据挖掘算法的Java实现。 1. **支持向量机(SVM)**:SVM是一种二分类模型,它的基本模型是定义在特征空间...

    常用大数据量,海量数据处理方法,算法总结

    海量数据处理方法总结 本文总结了常用的海量数据处理方法,包括 Bloom filter、Hashing 和 bit-map 等。这些方法可以用来解决大数据量的问题,例如数据字典、判重、集合求交集等问题。 Bloom Filter Bloom filter...

    基于协同过滤算法商品推荐系统论文-java-文档-基于协同过滤算法商品推荐系统文档

    - **选题动因**:随着互联网技术的发展和电子商务平台的兴起,如何在海量的商品信息中帮助用户找到他们真正感兴趣的商品成为了商家面临的一个重大挑战。传统的信息管理方式存在效率低下、错误率高、数据修改困难等...

    java一亿数字取前100个(3秒钟获取)Java算法.zip

    标题中的“java一亿数字取前100个(3秒钟获取)Java算法”涉及到一个经典的计算机科学问题,即在海量数据中快速找到最大的前N个元素。这个问题在大数据处理、排序以及性能优化等领域有着广泛的应用。在这个场景下,...

    海量分词研究版java接口

    总的来说,这个“海量分词研究版java接口”是一个强大的工具,它提供了在Java环境中处理大规模文本数据的分词能力,结合高效的算法、并行处理和丰富的配置选项,旨在为NLP研究和应用提供坚实的基础。

    数据挖掘算法Java实现

    Java作为一种广泛应用的编程语言,因其跨平台性和强大的库支持,常被用于数据挖掘算法的实现。下面将详细介绍与"数据挖掘算法Java实现"相关的知识点。 首先,我们要了解数据挖掘的基本流程,通常包括数据预处理、...

    java数据结构与算法之美(物超所值)

    高级篇将从概念和应用的角度,深入剖析一些稍复杂的数据结构与算法,推演海量数据下的算法问题解决过程;帮你更加深入理解算法精髓,开拓视野,训练逻辑;真正带你升级算法思维,修炼深厚的编程内功。 实战篇将通过...

    Java海量数据处理BitSetmd,学习代码d

    【Java海量数据处理BitSet】 在Java编程中,处理海量数据是一项常见的挑战,尤其是在大数据领域。BitSet是Java提供的一种高效的数据结构,用于存储和操作位集合,它非常适合处理大规模的数据,尤其当数据集中的元素...

    数据挖掘Java算法实现(源码)

    在这个“数据挖掘Java算法实现(源码)”的压缩包中,我们可以找到多种经典的数据挖掘算法的Java实现,这对于学习和实践这些算法提供了极大的便利。 1. 支持向量机(SVM,Support Vector Machine):SVM是一种二...

    apriori算法java实现源代码

    总的来说,Apriori算法是数据挖掘中基础且重要的工具,它可以帮助我们从海量数据中发现有趣的关联模式,对市场篮子分析、推荐系统等领域有着广泛的应用。Java作为通用的编程语言,提供了灵活的实现方式,使得我们...

    Java知识+算法+数据结构

    这个资源无疑是一个宝藏,它提供了海量的算法题目以及详尽的代码示例,覆盖了Java、C语言和C++等多种编程语言,为计算机专业的学生提供了一个极佳的课后实践平台。无论是初学者还是有一定编程基础的学生,都能从中...

    收纳操作系统、JAVA、算法、数据库、中间件、解决方案、架构、DevOps和大数据等技术栈总结

    算法是解决问题的核心工具,无论是数据结构还是排序、查找算法,都是提升程序效率的关键。例如,快速排序、二分查找、哈希表的应用,都在实际开发中有着广泛用途。 数据库是存储和管理数据的核心组件,如关系型...

    Java源码海量字符串的快速操作.rar

    本资源“Java源码海量字符串的快速操作”旨在提供解决方案,通过优化的算法和数据结构,提高大规模字符串操作的效率。下面将详细介绍其中涉及的关键知识点。 1. **字符串池(String Pool)** Java中的字符串是不可变...

    海量分词java版

    【海量分词java版】是针对大规模文本处理的Java实现,其主要目的是高效地对大量文本进行分词,这是自然语言处理(NLP)中的基础任务。在这个版本中,开发者利用JNI(Java Native Interface)技术进行了优化,允许...

    Java数据结构和算法中文

    - 算法的实际应用,例如在海量数据处理中选择合适的数据结构和算法,提高处理速度。 - 复杂数据的处理,比如在社交网络、搜索引擎等领域中如何使用图算法和树形结构来处理数据。 同时,根据书中的描述,读者可以...

Global site tag (gtag.js) - Google Analytics