算法
放羊的大飞
这个作者很懒,什么都没留下…
展开
-
LRU算法
LRU: Least Recently Used 最近最少使用。缓存算法。 利用链表和hashmap实现: 新增:如果新数据项在链表中存在,则把该节点移到链表头部;如果不存在,则新建一个节点放到链表头部;若缓存满了,则把链表最后一个节点删除。 查找:如果数据项在链表中存在,则把该节点移到链表头部并返回对应节点,...原创 2020-04-09 23:07:11 · 205 阅读 · 0 评论 -
三个线程轮询数据ABC
import java.util.concurrent.CountDownLatch;import java.util.concurrent.LinkedBlockingDeque;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class ThreadChange { public static void main(String[] args) { .原创 2020-06-01 16:31:33 · 271 阅读 · 0 评论 -
BFS
BFS(Breadth First Search):广度优先搜索算法一、BFS用于解决两类问题: 1). 从A出发是否存在到达B的路径 2). 从A出发到达B的最少步骤二、BFS通用流程: 1). 构建Node类,加合适属性; 2). 初始化队列,将起点offer进队列; 3). 消费Queue中的对象,poll的同时判断有没有新数据要offer进来...原创 2020-03-06 02:47:31 · 113 阅读 · 0 评论 -
KMP算法
一、KMP算法是用作字符串匹配的: 1.先找出目标字符串的部分匹配值序列:next[]; 2.依次比较:如果前n位相同,第n+1位不同,则移动: n - (第n位的部分匹配值) 的长度。搜索词: A B C D A B D A B C部分匹配值: -1 0 0 0 1 2 0 1 2 3 eg: 1.如果当前一位都没匹配上(例如模板是BBBBABABABA...原创 2020-03-01 02:04:02 · 116 阅读 · 0 评论 -
TopK算法
一、共N条数据,M条不同数据,求出现次数最多的值K。 1.用HashMap遍历存起来,数据名作为key,出现次数为value,然后找到最大的value。 O(N) 2.维护一个大小为K的小根堆,遍历HashMap,依次对比根元素。 O(N*logK)二、海量数据求次数最多的K条数据。三、海量数据求最大的前K个数...原创 2020-03-01 02:18:43 · 578 阅读 · 0 评论 -
排序算法
1.冒泡2.快排3.原创 2020-02-27 02:45:02 · 118 阅读 · 0 评论 -
基础小算法
1.字符串反转public static String reverse(String s){ char[] ch = s.toCharArray(); char temp; for(int i = 0; i < ch.length / 2; i++) { temp = ch[i]; ch[i] = ch[ch.length - 1...原创 2020-02-28 03:27:07 · 104 阅读 · 0 评论