![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法基础
文章平均质量分 77
基础算法
kolincc
这个作者很懒,什么都没留下…
展开
-
再谈位运算
再谈位运算位运算基础:基本运算:与 : x & y只要有一个为 0 即为 0, 都为 1 为 1或: x | y只要有一个为 1 即为 1, 都为 0 为 0非 : ! x取反异或 : x ^ y加法不进位, 相同为0, 不同为1int 32位 :1: 0000000000…12: 0000000000…103: 0000000000…11补码: 一个数与 x 相加 为 0, 则这个数即为 x 的补码, 等于 x 取反 + 1,原创 2021-04-27 21:44:13 · 206 阅读 · 1 评论 -
欧拉函数快速幂扩展欧几里得算法中国剩余定理
欧拉函数快速幂扩展欧几里得算法中国剩余定理原创 2020-11-11 20:54:02 · 431 阅读 · 1 评论 -
质.约数
质数与约数质数质数的**判定** -- 试除法 :分解质因数 -- 试除法 :**线性筛法求素数**朴素筛法(埃筛) -- 优化后 :**线性筛法:**约数试除法求一个数的所有约数 :约数个数 :约数之和 :最大公约数 :质数概念 : 在大于1的整数中 , 如果只包含1和本身这两个约数 , 就被称为质数 , 或者称作素数.质数的判定 – 试除法 :时间复杂度 : O ( sqrt(n) )d | n --> n/d | n ( “|” 表示整除 )只需判断较小的那个约数 , d^2原创 2020-10-16 15:30:10 · 521 阅读 · 1 评论 -
二分图与最小生成树
二分图与最小生成树最小生成树朴素版Prim算法Kruskal算法二分图染色法匈牙利算法最小生成树最小生成树对应的问题都是无向图最小生成树算法 :Prim算法稠密图 : 朴素版Prim算法 O( n^2 ) [^代码短 一般用于稠密图]稀疏图 : 堆优化版Prim算法 O( mlog(n) ) [^不常用]Kruskal算法 O( mlog(m) ) [^一般用于稀疏图]捋清算法思路 , 弄清楚算法的流程 , 不是死记模版朴素版Prim算法集合 s 表原创 2020-10-14 20:30:40 · 1143 阅读 · 3 评论 -
各种最短路径算法
最短路原创 2020-10-14 19:59:14 · 761 阅读 · 0 评论 -
图 . 树 . bfs . dfs .
搜索与图论 一原创 2020-09-23 15:56:28 · 188 阅读 · 0 评论 -
basic datastructrue three
basic datastructrue threeHash表STL使用技巧Hash表STL使用技巧原创 2020-09-05 23:02:35 · 147 阅读 · 0 评论 -
basic datastructrue two
basic datastructrue twotrie树并查集堆trie树trie树 , 又称字典树 , 是一种花 快速/高效 地 存储/查找 字符串集合的数据结构结构 : 结点存放每个字符串的字母 , 从根节点往下进行存储 , 如果子节点的字母与要存储的结点的字母相同 , 则继续往下搜索 , 如果不相同 , 则另外开辟一个子节点存储该字母 .ex : 可以发现,这棵字典树用边来代表字母,而从根结点到树上某一结点的路径就代表了一个字符串。举个例子,1 -> 4 -> 8 ->原创 2020-09-04 18:13:00 · 130 阅读 · 0 评论 -
basic datastructrue one
basic datastructrue one链表与邻接表单链表栈与队列KMP链表与邻接表单链表链表分为动态链表和静态链表动态链表如下 :struct Node{ int val ; Node *next ;}但由于 在 c++ 中,在使用动态链表的情况下,每次创建一个链表就需要调用 new() 函数来创建为其创建一个空间进行存储,但是据我们所知 , c++ 中的new()函数是非常慢的, 当我们处理百万级以上的数据时,使用动态链表就会超时,注意 : 这里所说的情况仅仅只针对于算法题中,原创 2020-09-03 10:28:06 · 146 阅读 · 0 评论 -
basic algorithm(Three)
basic algorithm three双指针算法位运算离散化区间合并双指针算法核心思想: 将时间复杂度为O(N^2)的朴素算法优化到O(N)核心代码:for(int i = 0,j = 0;i < n;i ++ ){ while(j < i && check( (i,j) ) j ++ ; // 具体的每道题目的基本逻辑: }模版:对于一个给定的字符串 , 其中每个单词间隔1个空格,将它们分割后输出code:// 给定一个字符串 将其中的单词分割输原创 2020-08-30 19:01:14 · 211 阅读 · 0 评论 -
Basic Agorithm ( TWO ).
高精度算法在高精度算法中,需要用一个 string 来存储高精度数据, 然后将其倒置放到一个vector中,方便操作.至于为什么要将其倒置存放到一个vector中,原因如下:当我们做加法和乘法的时候 , 会产生进位,这个时候需要增加数字 ,而据数组的特性所知,在数组的末尾添加一个数字比在数组的开头添加一个数字要容易的多 . 所以当我们存储数字的时候 , 要把其个位存放到数组的头部 , 也就是我们所说的倒置存储.高精度加法:模版:// 大整数类加法#include <iostream原创 2020-08-29 12:54:37 · 167 阅读 · 0 评论 -
Basic Agorithm ( ONE ).
basic algorithm onequick_sortmerge_sortquick_sortmerge_sort原创 2020-08-18 15:05:36 · 152 阅读 · 0 评论