算法总结
文章平均质量分 69
Shicheng_Yang
这个作者很懒,什么都没留下…
展开
-
二分查找算法
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以原创 2013-07-15 11:48:50 · 503 阅读 · 0 评论 -
台湾國立臺灣師範大學演算法链接
http://www.csie.ntnu.edu.tw/~u91029/index.html原创 2013-07-15 11:48:46 · 767 阅读 · 0 评论 -
最大公因数&&最小公倍数
最大公因数(Greatest Common Divisor)。多个数字共同都有的正因数当中最大的一个。int gcd ( int a , int b ){ int d ; for ( d = a ; !( a % d == 0 && b % d == 0 ); d --) ; return d ;}由于两个数必定是由最大公因数的整数倍所组合而成,原创 2013-08-01 16:03:58 · 943 阅读 · 0 评论 -
素数筛法和测试
一。筛法线性时间筛法:一边制作质数表,一边删掉每个数的质数倍,时间复杂度就能达到O(N) 。const int N = 20000000 ;bool sieve [ N ]; void eratosthenes (){ vector prime ; for ( int i = 2 ; i < N ; i ++) {原创 2013-08-01 16:18:27 · 620 阅读 · 0 评论 -
质因数分解
算术基本定理Fundamental Theorem of Arithmetic凡是正整数都可以藉由质因数分解成为一个独一无二的式子,不同的n 就会对应不同的(n1, n2, … ) ,反方向亦同。根据算术基本定理,凡是牵扯到乘法、因数、倍数的数学运算,都可以改变成比较简单的运算。分解前| 分解后n | (n1, n2, ...)m | (m1, m2, ...)--原创 2013-08-01 16:22:44 · 1102 阅读 · 0 评论 -
矩阵乘法
矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n),还可以求路径方案等,所以更是是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。它是这样定义的,只有当矩阵A的列数与矩阵B的行数相等时A×原创 2013-07-15 11:48:48 · 750 阅读 · 0 评论 -
树状数组
例题数列操作 给定一个初始值都为0的序列,动态地修改一些位置上的数字,加上一个数,减去一个数,或者乘上一个数,然后动态地提出问题,问题的形式是求出一段数字的和.算法分析 如果直接做的话,修改的复杂度是O(1),询问的复杂度是O(N),M次询问的复杂度是M*N.M,N的范围可以有100000以上,所以这样做会超时,但是如果用线段树的话,还是很不错的!有很多线段树能实现但树状数组却实现不原创 2013-07-15 11:49:09 · 464 阅读 · 0 评论 -
LCS最长公共子序列
LCS是Longest CommonSubsequence的缩写,即最长公共子序列。一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列。复杂度 对于一般的LCS问题,都属于NP问题。当数列的量为一定的时,都可以采用动态规划去解决。解法 动态规划的一个计算最长公共子序列的方法如下,以两个序列 X、Y 为例子: 设有二维数组 f[i][j] 表示原创 2013-07-15 11:48:30 · 478 阅读 · 0 评论 -
多重背包
--整理自《背包九讲》题目有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本算法这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i种物品原创 2013-07-15 11:48:26 · 407 阅读 · 0 评论 -
欧拉函数
在数论中,对正整数n,欧拉函数\varphi(n)是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数、欧拉商数[来源请求]等。这是一个公式。计算1 到n 的正整数当中,跟n 互质(最大公因数是一)的数,总共有几个。首先要将n 做质因数分解:n = p 1 a 1 × p 2 a 2 × … × p k a k where p 1 … p k are原创 2013-08-01 20:35:14 · 1788 阅读 · 0 评论