好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

《编程之美》第2版勘误表

14. 第139页,倒数第14行( 感谢:网友 1229david ) 原文:每个元素h[i],它的父亲结点是 h[i/2] ,儿子结点是是h[2*i+1]和h[2*i+2]。 改为:每个元素h[i],它的父亲结点是 h[(i-1)/2] ,儿子结点是是h[2*i+1]和h[2*i+2]。 15. 第149页 (感谢 : 网友朱静

14. 第139页,倒数第14行( 感谢:网友 1229david )

原文:[每个元素h[i],它的父亲结点是 h[i/2] ,儿子结点是是h[2*i+1]和h[2*i+2]。]
改为:[每个元素h[i],它的父亲结点是 h[(i-1)/2] ,儿子结点是是h[2*i+1]和h[2*i+2]。]

15. 第149页 (感谢 : 网友朱静)

原文:

f(42,30)=f(101010 2 , 11110 2 )

= 2 * f(10101 2 , 1111 2 )

18. 代码清单3-1 (感谢 : 网友朱静)

原文:

if(strstr(src, des) == 0)
{
return (true);
}

修改:

if(strstr(src,des)!=NULL)
{
return (true);
}

= 2 * f(1111 2 , 110 2 )

= 2 * f(1111 2 , 11 2 )

= 2 * f(1100 2 , 11 2 )

= 2 * f(11 2 ,11 2 )

= 2 * f(0 2 ,11 2 )

= 2 * 11 2

= 6

改为:

f(42,30)=f(101010 2 , 11110 2 )

= 2 * f(10101 2 , 1111 2 )

= 2 * f(1111 2 , 110 2 )

= 2 * f(1111 2 , 11 2 )

= 2 * f(11 2 ,1100 2 )

= 2 * f(11 2 ,11 2 )

= 2 * f(11 2 ,0 2 )

= 2 * 11 2

= 6

16. 第173页,倒数第5行 (感谢 : 网 友 jinlingmin0624 )

原文:先排序再二分查找固然可以将时间从 O( N 2 ) 缩短到 O( Log 2 N),但是还有更快的查找方法:hash表。

修改:先排序再二分查找固然可以将时间从 O( N 2 ) 缩短到 O(N*log 2 N) ,但是还有更快的查找方法:hash表。

17. 第200页,代码清单2-37 (感谢:网友 chuncl )

原文:

for(k = 1; k {
for(i = 1; (i for(v = 1; v if(v >= arr[k] && isOK[i-1][v-arr[k]])
isOK[i][v] = true;
}
修改:
for(k = 1; k {
for(i = min(k, n); i>= 1; i--)
for(v = 1; v if(v >= arr[k] && isOK[i-1][v-arr[k]])
isOK[i][v] = true;
}

查看更多关于《编程之美》第2版勘误表的详细内容...

  阅读:34次