1、求解最大公约数(穷举法与欧几里得算法)
①穷举法
设置c循环枚举从n开始递减至1,在循环中逐个检测c是否满足条件: m%c0 and n%c0,最先满足的c即为所求。
②欧几里得算法
(1) 数 m 除以 n 得余数 r;若r=0,则n为所求的最大公约数。
(2) 若 r≠0,以n为m,r为n,继续(1).
欧几里德算法具体描述如下:
input(m,n); // 输入的简略表示
r=m%n;
while(r!=0) // 实施辗转相除
{ m=n; n=r; r=m%n; }
print(n); // 输出的简略表示
③时间复杂度:穷举法为O(n),欧几里得算法为O(logn)
2、求和
基本求和算法
时间复杂度:O(n3/2)
应用求和公式算法
时间复杂度:O(n1/2)
3、递归算法时间复杂度(排序、汉诺塔)
排序:
汉诺塔:
4、vector的函数