算法随记

1.在计算取模时,在操作不是2的幂的数时,取模计算会出奇的慢。在数不能被10整除时,二进制计算做“%10”计算会有较大的开销且并不高效。 

2.对数极算法性能极高,仅次于常数极。首先来分析一下对数极算法的特点。对数极的算法共同点是每次都将问题的规模缩减一半。性能在k=log(n)时,i次迭代时,数据规模e=2k-i

3.时间性能为O(nlog(n))的算法特点:一般这种算法可以概括为:先将所有数据集分为两个数据集,之后每个数据集在进行一次O(n)的操作。数学表达式为:t(n)=2*t(n/2)+O(n)。

4.O(n*n)的算法特点就是嵌套循环

5.在选择算法时,如果能减少循环次数,尽量减少循环,可以用分治的思想简化算法。比如在排序的时候,尽量分析一下样本数据,如果可以分组或者能缩减样本,尽量缩减,这样可以减少循环次数。例如shell排序,中值排序等等,都是这个思路。

6.所有循环都可以演变为尾递归

 

posted @ 2012-05-15 21:58  王新的博客  阅读(193)  评论(0编辑  收藏  举报