前言
最近遇到一个求解TopN的场景,从1亿条数据中,找出最大或者最小的10个数。
怎么办?不可能对数据进行全排序吧,哪里有那么大的内存空间!谷歌搜索了相关的解决方案,最终定位在使用堆排序解决这个问题。
摘要
1、什么是二叉树?
2、什么是堆?
3、堆排序原理?
4、堆排序的Java实现。
5、堆排序的Scala实现。
主要内容
一、什么是二叉树
参考:https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%8F%89%E6%A0%91
要了解堆首先需要了解下二叉树(英语:Binary tree),在计算机科学中,二叉树是每个节