递归算法的复杂度

递归算法的复杂度通常很难衡量,一般都认为是每次递归分支数的递归深度次方。但通常情况下没有这个大,如果我们可以保存每次子递归的结果的话,递归算法的复杂性等于不同的节点个数。这也是动态规划算法思想的由来。
看一下下面这个算法题目,据称是百度的笔试题:
简述:实现一个函数,对一个正整数n,算得到1需要的最少操作次数:
如果n为偶数...

约1147字,阅读全文

标签: , ,

求平方根倒数的算法

下面这个求的函数号称比直接调用sqrt库函数快4倍,来自游戏Quake III的源代码。
float InvSqrt (float x){
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i>>1);
y = *(float*)&i;
y = y*(1.5f - xhalf*y*y);
return x;
}

我们这里分析一下它的原理(指程序的正确性,而不是解释为何快)。
分析程序之前,我们必须解释一下float...

约1204字,阅读全文

标签: ,

guest | 注册 | 管理 | English | 繁體 | https

阅微堂

zhiqiang's personal blog
Loading...
Loading...
Loading...