zoukankan      html  css  js  c++  java
  • 堆排序

    堆排序: https://www.cnblogs.com/chengxiao/p/6129630.html
    堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。

    堆是具有以下性质的完全二叉树:
    每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;
    或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。

    堆排序的应用: topK 问题
    https://www.jianshu.com/p/83988a6312b5

    假设现在我们有一个包含 10 亿个搜索关键词的日志文件,如何快速获取到 Top 10 最热门的搜索关键词
    可以使用MapReduce
    如果是单机处理并且内存不足以把10亿数据放入内存的时候。
    按照关键词放入散列表中,value为次数。之后遍历散列表后使用小顶堆得到Top K。但是这也会导致内存不足。
    所以可以将10亿个关键词按照哈希值划分到10个空文件中,并对每个文件(500MB)取出Top 10,并将10个 Top 10,放在一块并得到最终Top 10

    https://blog.csdn.net/runrun117/article/details/80478211

    补充:时间复杂度

  • 相关阅读:
    Sql Server 2016数据库定时备份操作步骤
    .net 生成原图和多张缩略图
    python小知识
    python小知识
    Q pi (lambda)
    GAE&reward shaping
    yield函数
    关于vs code和markdown
    强化学习第七章
    强化学习第六章
  • 原文地址:https://www.cnblogs.com/kevin-yuan/p/13499366.html
Copyright © 2011-2022 走看看