大数据算法的核心思路

内存不够 就利用分治思想

常用的方式就是利用hash取模进行离散化处理,分割成一个个的小文件,这样相同的数据肯定在同一个文件里。

统计频率 一般使用HashMap

当文件足够小或者内存充足的时候 利用HashMap可以方便的统计出每个文件中关键字的频率的大小 这样就可以比较方便的利用下面的堆进行排序了

排序善用堆 减少内存使用

一般情况下,求Top10大可以用最小堆 求Top10小可以用最大堆 比如请求Top10大 可以先取10个元素建堆 当下一个元素比堆顶大的时候 就和堆顶交换 再恢复成最小堆 这样可以最大程度上节约空间 设有N个元素 由于需要调整N次 每次调整的复杂度为logk (求topk) 所以总的时间复杂度就是nlogk

典型的大数据算法题

你可能感兴趣的:(大数据算法的核心思路)