堆和堆排序

  1. 什么是堆?
  2. 如何存储一个堆(如何实现一个堆?)
  3. 堆的插入、删除操作
  4. 如何基于堆实现排序?(建堆和排序)
  5. 为什么快速排序要比堆排序性能好?
  6. 在讲堆排序建堆的时候,我说到,对于完全二叉树来说,下标从 2n​+1 到 n 的都是叶子节点,这个结论是怎么推导出来的呢?
  7. 我们今天讲了堆的一种经典应用,堆排序。关于堆,你还能想到它的其他应用吗?
  8. 利用堆构建优先级队列:合并有序小文件,高性能定时器??
  9. 利用堆求 Top K(针对静态数据,如何在一个包含 n 个数据的数组中,查找前 K 10. 大数据呢,如果是针对动态数据求得 Top K 就是实时 Top K呢)?
  10. 利用堆求中位数(如何求动态数据集合中的中位数)?
  11. 假设现在我们有一个包含 10 亿个搜索关键词的日志文件,如何快速获取到 Top 10 最热门的搜索关键词呢?
  12. 有一个访问量非常大的新闻网站,我们希望将点击量排名 Top 10 的新闻摘要,滚动显示在网站首页 banner 上,并且每隔 1 小时更新一次。如果你是负责1开发这个功能的工程师,你会如何来实现呢?

你可能感兴趣的:(堆和堆排序)