美文网首页
数据量很大的排序问题 大量数据如何排序

数据量很大的排序问题 大量数据如何排序

作者: 執著我們的執著 | 来源:发表于2019-08-12 22:48 被阅读0次

阿里技术面,排序问题:
问题一:若有1T的数据,比如 只有两列,身份证号和姓名 需要实现由大到小排序,你用什么办法,能否做到 复杂度为O(n),说说你的思路和想法?
问题二:有10个G的数据,也是一样,比如两列,身份证号和姓名,如果两条数据一样,则表示该两条数据重复了,现在给你512的内存,把这10G中重复次数最高的10条数据取出来。

我的思路是:这么大的数据,用普通的排序一定不行,
可以这样,用身份证号的前三位切割这个数据,这样会分成999份,
每一份再进行排序,比如构造一个平衡二叉树,最典型的的就是TreeMap和TreeSet(TreeSet底层是使用了TreeMap算法,而TreeMap算法底层是实现了红黑树的平衡二叉树的排序);
然后按照文件名进行排序,这样就实现了大数据排序;
因为排序二叉树的复杂度为O(lgn)到O(n) ;
因此我们可以做到 O(n)

问题二:

解法是一样的 按照身份证号前三位 分割999份,然后对这每个文件找到重复的最多的十条,这样,我们得到了999个文件,每个文件有 10条数据

在对这个999*10条进行排序找到 重复率最高的十条即可;

相关文章

  • 数据量很大的排序问题 大量数据如何排序

    阿里技术面,排序问题:问题一:若有1T的数据,比如 只有两列,身份证号和姓名 需要实现由大到小排序,你用什么办法,...

  • 算法之排序大总结

    排序分为内部排序和外部排序, 内存排序:在数字记录在内存中的排序叫做内部排序 外部排序:一次性排序的数据量很大,内...

  • 算法(一)之排序算法(七)——归并排序(MergeSort)

    上篇有个问题说道,当我们的待排序的数据数据量较大并且是线性结构时用快速排序进行排序操作。但是当我们要排序的数据是链...

  • 归并排序

    排序分 内部排序 + 外部排序 两种, 区分在于数据量, 内部排序可以将数据全部放到内存中, 然后进行排序常见的内...

  • 了解归并排序

    归并排序分析:归并排序处理的数据量一般很大,无法直接在内存中排序。首先将要排序的文件分为几个大小可以加载到内存空间...

  • 10G数据,1G内存,如何排序?

    外部排序问题 当数据量超过内存量,通过一般意义上的排序算法已经不能胜任排序工作了。我们需要借助于外存,保留我们排序...

  • 排序算法总结

    排序算法 排序算法可以分为内部排序和外部排序 内部排序:数据记录在内存中进行排序。 外部排序:排序的数据很大,排序...

  • 常用的排序

    排序分为内排序和外排序,区别在于: 内排序:在内存中进行的排序外排序:当参与排序的数据量特别大,一次不能全部读入内...

  • 常见的排序算法

    概述 排序分为内部排序和外部排序: 内部排序:数据记录在内存中进行排序 外部排序:排序的数据很大,一次不能容纳全部...

  • Python经典排序算法

    排序:内部和外部 内部排序:数据记录在内存中进行排序。外部排序:排序的数据很大,一次不能容纳全部的排序记录,在排序...

网友评论

      本文标题:数据量很大的排序问题 大量数据如何排序

      本文链接:https://www.haomeiwen.com/subject/dozzuftx.html