![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法概论学习笔记
我是Oliver啊
投行程序员,港漂一枚
展开
-
欧几里得及欧几里得扩展算法
(1)欧几里得算法 defination:if x and y are positive and x >= y,then gcd(x,y) = gcd(x mod y,y)。 又叫辗转相除法,用于求解最大公约数,时间复杂度为O(log n)(n 为二进制的长度)。 proof::首先,我们应该知道:如果一个数可以除尽x,y,那么它一定能除尽x-y。那么我们可以得到gcd(x,y) = gcd原创 2013-03-14 12:08:59 · 628 阅读 · 0 评论 -
费马小定理
(1)Fermat's little theorem defination: if p is a prime,then for every 1 a^(p-1) ≡1(mod p) 这是一个充分条件,不是必要条件。比如341 = 11 *31,但是2^340 mod 341 = 1。 所以不能从结果推出某个数是不是素数,但是我们还是还是先把代码写在这//随机的选一个整数a<p if a^p原创 2013-03-20 10:18:54 · 585 阅读 · 0 评论 -
最短路算法之Dijkstra
最近太忙了,没什么时间来更新。当然,正如当初保证的一样,一有时间我就会更新的。 好了,言归正传 Dijkstra: 图的最短路算法之一,在边没有负权边的情况下,能解决所有的最短路问题。 原理:将点分为两个集合,集合S和集合T。并成立数组dist[],数组path[],数组S[]。 集合S:找到最短路的点 集合T:未找到最短路的点 dist[]:表示当前点到所有点的最短距离 path原创 2013-06-03 15:31:44 · 472 阅读 · 0 评论