1 分治法
算法思想:
- 将一个问题划分为若干个子问题。
- 递归的解决每一个子问题。
- 将子问题的解合并成为整个大问题的解。
2 归并排序
算法思想:
- 将一个数组分为两个子数组。
- 递归的对每一个子数组进行排序。
- 合并两个有序子数组。
时间复杂度:
3 二分查找
在有序数组中查找数X。
算法思想:
- 把数X与数组中间元素比较,得到X所在的子数组。
- 递归的在这个子数组查找X。
- 无。
时间复杂度:
4 n次幂乘方问题
有实数X和正整数n计算X^n。 当n为偶数时,X^n=X^(n/2)·X^(n/2),当n为奇数时,X^n=X^((n-1)/2)·X^((n-1)/2)·X。
时间复杂度:
5 斐波那契数列
1)直接递归
2)自下而上递归式
3)朴素平方递归
4)矩阵法
6 n阶矩阵相乘
1)朴素算法
- 输入:两个矩阵A[aij]和B[bij] 1<=i<=n 1<=j<=n
- 输出:矩阵C[cij]=A[aij]·B[bij]
for i ← 1 to n
do for j ← 1 to n
cij=0
do for k ← 1 to n
do cij ← cij+aik·bkj
运行时间为Θ(n^3)
2)strassen算法
7 VLSI layout(超大规模集成电路)
1)朴素算法
2)优化算法