分治法
概述:
- 将问题的实例划分为同一个问题的几个较小的实例,最好拥有同样的规模。
- 对这些较小的实例求解(一般使用递归,但问题规模足够小时,有时也会用另一个算法)
- 如果有必要的话,合并这些较小问题的解,已得到原始问题的解
合并排序:
http://www.cnblogs.com/wanghui390/p/3594299.html
快速排序:
http://www.cnblogs.com/wanghui390/p/3593854.html
二叉树遍历:
1. 求树的高度
1 算法 Height(T) 2 //递归计算二叉树的高度 3 //输入:一棵二叉树 4 //输出:T的高度 5 if T = 空 return -1 6 else return max{Height(TL), Height(TR)}+1
2.前,中,后序遍历二叉树
大整数乘法:
两个a,b整数的乘积,其中n是一个正的偶数。把a的前半部分记作a1,后半部分记为a0。对于b分别记作b1和b0.
c=a*b=(a1*10n/2+a0)*(b1*10n/2+b0)
=(a1*b1)10n+(a1*b0+a0*b1)10n/2+(a0*b0) = c2*10^n+c1*10^(n/2)+c0;
c2=a1*b1, c0=a0*b0,c1=(a1+a0)*(b1+b0)-(c2+c0)
如果n/2也是偶数,我们可以应用相同的方法计算c2,c0和c1;
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号