美文网首页
分治思想笔记

分治思想笔记

作者: 心無旁騖丶 | 来源:发表于2021-03-28 21:20 被阅读0次
  • 例:现有1T文件数据,其中只有两行内容相同,找出这两行需要怎么做?
    假设一台机器内存500MB

单机思想:

  1. 分别读取每行数据,取哈希值
  2. 每个哈希值对2000取余数,余数相同归为一组,得到2000组转存为2000个文件
  3. 相同内容行的哈希值相同,对2000取余必相同,所以相同内容行必在一个文件内
  4. 1T文件分为2000个小文件,每个文件大约500MB相当于内存大小
  5. 取单个文件写入内存,便可找到是否有相同内容行

分治思想:

  1. 1T文件,分为2000份,每份大约500MB
  2. 分发到 2000个计算机
  3. 在单机思想基础上,每台计算机并行计算哈希取余过程
  4. 将每台计算机取余为0拷贝到第一台计算机,取余为1拷贝到第二台计算机,以此类推
  5. 并行计算每台计算机是否有向同行。

总结:

  1. 单机思想时,读取小文件并计算用时约30分钟,需要执行2000次,假设每次1秒,需要2000秒,约30分钟,需大约一个小时完成。
  2. 分治思想时,将1T文件分发到2000台计算机需要耗费大量时间,约3个小时,在带宽为100MB的情况下,拷贝取余相同行,因每台计算机文件500MB,需5秒,计算机并行运算为1秒,可看出大量用在分发文件。
  3. 假设每天都会有1T数据需要运算,一年则是365T数据,单机运行需要至少365小时,分治思想在最后一天也只是花3小时进行分发,运算时间远少于单机运算。

相关文章

  • 分治思想笔记

    例:现有1T文件数据,其中只有两行内容相同,找出这两行需要怎么做?假设一台机器内存500MB 单机思想: 分别读取...

  • 分治思想

    QLU_ACM 浅谈分治思想 by StilllFantasy 分治思想为何物? 分治法可以通俗的解释为:把一片领...

  • 归并排序

    图解 思想:分治思想 分治思想是算法常用的思想。实现方式通常是递归。分治是一种解决问题的处理思想,递归是一种编程技...

  • 分治算法

    文章结构 如何理解分治算法 分治算法应用举例 1. 如何理解分治算法 1.1 分治算法的核心思想 分治算法的核心思...

  • ConcurrentHashMap 源码

    阅读笔记,基于JDK1.8 主要思想 分治思想,增加计数; 修改单个值的时候用CAS指令; 修改整体值的时候用CA...

  • 分治算法思想

    分治算法(divide and conquer)的核心思想其实就是四个字,分而治之 ,也就是将原问题划分成 n 个...

  • 归并排序和快速排序

    归并排序和快速排序 一、分治思想 分治思想:分治,顾明思意,就是分而治之,将一个大问题分解成小的子问题来解决,小的...

  • Leetcode-Java(二十五)

    241. Different Ways to Add Parentheses 采用分治算法,分治算法的基本思想是将...

  • Divide and Conquer

    算法之 分治法 Divide and Conquer 分治法: 分治法的设计思想是:将一个难以直接解决的大问题,分...

  • 算法思想 - 分治算法

    其实相比于分治算法,我更愿意称之为分治“思想”。因为这种思想的应用非常广泛,不仅是在计算机中,在生活中到处都是分治...

网友评论

      本文标题:分治思想笔记

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