![](https://img-blog.csdnimg.cn/20200401140518983.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 66
数据结构与算法
carroll18
你想要拥有你从未有过的东西,你必须去做你从未做过的事情。
展开
-
常用算法模板总结--数学
文章目录试除法判定质数试除法分解质因数朴素筛法求素数埃式筛法求素数线性筛法求素数试除法求所有约数约数个数 和 约数之和欧几里得算法(辗转相除法)快速幂 试除法判定质数 boolean is_prime(int x) { if (x < 2) { return false; } for (int i = 2; i <= x / i; i ++ ) { if (x % i == 0) {原创 2021-04-27 15:07:34 · 157 阅读 · 0 评论 -
常用算法模板总结--搜索与图论
文章目录树与图树与图的存储树与图的遍历BFSDFS拓扑排序最短路径朴素dijkstra算法堆优化版dijkstraBellman-Ford算法队列优化的Bellman-Ford算法(SPFA算法)floyd算法最小生成树朴素版prim算法Kruskal算法二分图染色法匈牙利算法 树与图 树与图的存储 树是一种特殊的图,与图的存储方式相同。对于无向图中的边ab,存储两条有向边a->b, b->a。 邻接矩阵:g[a][b] 存储边a->b 邻接表: 树与图的遍历 BFS priva原创 2021-04-27 14:57:35 · 159 阅读 · 0 评论 -
常用算法模板总结--数据结构
文章目录单链表双链表栈队列单调栈单调队列Trie(字典树/前缀树)并查集一般哈希拉链法开放定址法LRU缓存LFU 缓存 单链表 public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } class MyLinkedList { int size; ListNode head; public MyLinkedList() { size = 0; head = new L原创 2021-04-27 14:14:44 · 169 阅读 · 0 评论 -
常用算法模板总结--基础算法
文章目录快速排序归并排序二分查找一维前缀和二维前缀和位运算双指针算法离散化区间合并KMP算法Trie(字典树/前缀树) 快速排序 void quickSort(int[] nums, int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = nums[l]; while (i < j) { while (nums[ ++ i] < x);原创 2021-04-27 11:37:37 · 177 阅读 · 0 评论 -
常用算法模板总结--随记
辗转相除法 用来求最大公约数 private int gcd(int a, int b) { return b == 0? a: gcd(b, a % b); } while(x % y != 0){ temp = x % y; x = y; y = temp; } ...原创 2020-10-04 23:39:49 · 281 阅读 · 4 评论