算法
vincent_hahaha
haha ha
展开
-
如何在10亿个整数中找出前1000个最大的数(TopN算法)
面试题目:如何在10亿个整数中找出前1000个最大的数。我们知道排序算法有很多:冒泡算法:通过两层for循环,外层第一次循环找到数组中最大的元素放置在倒数第一个位置,第二次循环找到第二大的元素放置在倒数第二个位置。。。循环N次就可以找到TopN。 缺点:冒泡排序内层循环需要大量交换元素。复杂度介于O(n)和O(n^2)之间。 快速排序:选一个基准元素,每次排序可以将这个基准元素搁...原创 2019-08-10 00:36:00 · 1038 阅读 · 0 评论 -
KMP算法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-09-18 01:02:47 · 201 阅读 · 0 评论 -
二叉堆与二叉堆的构建
什么是二叉堆?二叉堆本质上是一种完全二叉树,它分为两个类型:最大堆:任何一个父节点的值,都大于或等于它左、右孩子节点的值。 最小堆:任何一个父节点的值,都小于或等于它左、右孩子节点的值。二叉堆的根节点叫做堆顶。 最大堆和最小堆的特点决定了:最大堆的堆顶是整个堆中的最大元素;最小堆的堆顶是整个堆中最小元素。构建二叉堆对于二叉堆,有如下几种操作:插入节点。 删除节点...原创 2019-08-21 14:43:00 · 504 阅读 · 4 评论
分享