
原创系列之算法撕裂者
文章平均质量分 79
Kevin涛
微信公众号:Kevin的学堂
展开
-
MySQL索引数据结构与算法
MySQL索引数据结构与算法文章目录MySQL索引数据结构与算法1、索引2、索引结构二叉树与红黑树的比较HASHB-TreeB+TreeMyISAM索引实现(非聚集)InnoDB索引实现(聚集)1、索引索引是帮助MySQL高效获取数据的排好序的数据结构(容易忽略的点:排好序)(形象点就是教科书的目录)索引存储在文件里(也就是说有IO操作)MyISAM 表的磁盘文件有三个:.frm (...原创 2020-04-12 11:02:49 · 357 阅读 · 0 评论 -
《算法撕裂者》04 - 垃圾收集算法详解
文章目录五、垃圾收集(GC)算法0、java对象内存申请过程1、stop the world2、如何判断对象是否“死去”?a、引用计数算法b、可达性分析算法c、再谈引用3、标记-清除算法(Mark-Sweep)什么是标记-清除算法有什么缺点?4、复制算法(Copying)- 新生代优点?缺点?应用?5、标记-整理算法(Mark-Compact)- 老年代优点?缺点?6、分代收集算法五、垃圾收集(...原创 2020-04-05 15:48:34 · 446 阅读 · 0 评论 -
《算法撕裂者》03 - 快速排序
文章目录零、前言一、排序必学之快速排序二、性能分析及算法改进1、切换到插入排序2、三数取中3、三向切分三、“挖坑填数”之挖自己入坑四、jdk源码之双轴快排五、总结零、前言之前对排序算法不是很了解,特别是快排,作为排序中常别问及的快排,必须要好好掌握啦!其实我是看懂了快排的,可直到我又看到一篇“挖坑填数”的博文以及我写代码测试挖自己入坑了,想想还是花点时间记录巩固一下这其中的一些值得探究的点。...原创 2020-03-29 17:42:09 · 162 阅读 · 0 评论 -
《算法撕裂者》01-手把手实现二叉堆
零、前言上一篇我们学习了用堆实现优先队列解决了经典的TopK问题,那这篇我就带大家来手写一个自己的堆吧。一、二叉堆我们首先来了解一下二叉堆。二叉堆是一种特殊的堆,其实质是完全二叉树(把元素顺序排列成树的形状)。二叉堆有两种:最大堆和最小堆。最大堆是指父节点键值总是大于或等于任何一个子节点的键值。而最小堆恰恰相反,指的是父节点键值总是小于任何一个子节点的键值。如“图1 最大堆”、“图2 最...原创 2020-03-27 11:00:18 · 346 阅读 · 0 评论 -
《算法撕裂者》02 - 推荐算法
推荐算法之协同过滤及其改进与实现前言协同过滤算法(1)基于用户的协同过滤算法(2)基于物品的协同过滤算法改进的协同过滤算法(1)用户相似度计算的改进(2)加权系数惩罚热门物品具体实现1、请求入口2、推荐实现类(获取最近K邻居)3、推荐实现类(获取相应的推荐歌曲)4、 封装返回结果最后的总结和絮叨前言因为我的项目和简历中都提及了推荐算法,也有几次面试官问到,现在想想回答的虽然没有问题,但是总感觉...原创 2020-03-22 15:50:03 · 833 阅读 · 0 评论 -
《算法撕裂者》系列0 - TopK问题
文章目录零、前言一、算法必学:经典的 Top K 问题二、很容易想到的方案之排序法三、分布式思想处理海量数据四、最经典的方法之堆五、纸上得来终觉浅,绝知此事要躬行。1、LeetCode面试题--最小的 K 个数2、LeetCode面试题--前 K 个高频元素六、总结(文末有彩蛋!!!)零、前言首先说说我写这篇系列文的原因吧,最近准备面试在刷算法题,题也刷了不少,但遇到新题总是不能很快的想到好的...原创 2020-03-04 15:43:30 · 429 阅读 · 0 评论