首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
_vivi
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
聊聊缓存淘汰算法-LRU 实现原理
我们常用缓存提升数据查询速度,由于缓存容量有限,当缓存容量到达上限,就需要删除部分数据挪出空间,这样新数据才可以添加进来。缓存数据不能随机删除,一般情况下我们需要根据某种算法删除缓存数据。常用淘汰算法有 LRU,LFU,FIFO,这篇文章我们聊聊 LRU 算法。 LRU 是 L…
一篇文章搞定面试中的二叉树题目 (java 实现)
因为最近要找工作面试,所以就总结了一些数据结构和算法相关的题目,这是第一篇文章,关于二叉树的。
白话 KMP 算法
KMP 算法是计算机字符串匹配的常规算法。wiki 本篇文章借助简单示例,用通俗易懂的方式描述对 KMP 算法的理解。 对于 KMP 来说,“匹配值表”是很关键的。下面我们从简单示例出发描述匹配值表是如何产生的,以便理解。 现在 我们需要查找的字符串是 “ABABABCA”。 …
排序算法:快速排序
该博客用于本弱鸡复习巩固,打牢基础,还望各大佬不吝赐教。 2.接着以该k为中间,左右两边的分割作为新的序列,重新进行1操作。 而在大量数据排序时,递归产生的性能影响对于算法的整体性能优势可以忽略。 p.s. 最坏情况:待排序为正序或逆序,这样每次分割后的子序列一个之比上一次序列…
冒泡排序 (oc/java/python/scala)
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。时间复杂度为 O(n^2)。点击查看冒泡排序原理动画演示 java 代码: import java.util.Arrays; public class MyClass { pu…
两道看似简单的高频算法面试题
前几天写了一篇二分查找的文章如何理解二分查找?生活中还能用来设计骗局?,文章的末尾留下了两道题,本来是想问问小秋怎么做的,然而小秋今天去浪了,无法和你们讲解他的思路了。所以全程由帅地来和你们讲解。 当然,这道题你也可以采用 n 次循环让 n 个 x 相乘,不过,这样的做法毫无意…
二分查找(oc/java/Python/scala)
查找过程演示: 在数组[130,150,170,190,210,230,250,270,290,310]中查找数字190,红色为二分线(折半线),灰色为查找区域,黑色为排除区域。 SYJ二分查找演示.gif 二分查找优缺点: 二分查找(折半查找)优点是比较次数少,查找速度快,平…
如何判断一个元素在亿级数据中是否存在?
需求其实很清晰,只是要判断一个数据是否存在即可。 但这里有一个比较重要的前提:非常庞大的数据。 我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。 写入和判断元素是否存在都有对应的 API,所以实现起来也比较简单。 为了方便调试加入了 GC 日…
[算法总结] 13 道题搞定 BAT 面试——字符串
1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m)。因为“暴力搜索”的方法会反复回溯主串,导致…
FIFO/LRU/LFU三种缓存算法
更多精彩文章。 欢迎Linux和java后端的同学关注公众号。 JVM内缓存是缓存体系中重要的一环,最常用的有FIFO/LRU/LFU三种算法。 1、FIFO是简单的队列,先进先出。 2、LRU是最近最少使用,优先移除最久未使用的数据。是时间维度。 3、LFU是最近最不常用,优…