书的翻译质量真的不敢恭维。一般来说,书中出现一两个错误还是可以理解的,失误总是有可能的。但是不能容忍的是译者的汉语是按英文语法组织的,这个是态度问题,就严重了。老实说,这个汉语比英语还晦涩,不如直接去读英语好了,看着还舒服些。
例如:
E文版后后面的习题答案中,Solution for Column2 (A.)In the first pass of the algorithm we read the (at most) four billion input integers and write those with a leading zero bit to one sequential file and those with a leading one bit to anothor file.
译者的译文(P196):我们在算法的第一个通道读取了40亿个整数,并在这些输入整数前加上一个0位,然后输出到一个顺序文件中,在这些输入整数前加一位1并输出到另一个文件中。
1.可能译者没有看或者没有看懂的情况下就译出了这段话。write those with leading zero/one bit bit,看懂这个算法的话,我们可以知道,原作者的意思是将以0开头(最高位为0)的数写到一个文件,将以1开头(最高位为1)的数写到另一个文件,从而缩小查找范围。而译者尽然翻译成整数前加一个0/1位再写入文件。汗.....
2.整本书中,译者将“pass”译成“通道”,读起来很别扭,我觉得译成“遍”比较贴切点。譬如第一章中,通过遍历40遍的方法在1M内存中对文件中1千万个不重复整数进行排序时,原作者是这么说的:"We will therefore use a program that makes 40 passes over the input file.On the first pass it reads into memeoryy any integer between 0 and 249999,sorts the (at most) 250000 integers and writes them to the output file, The second pass sorts the integers from 250000 to 499999,and so on to the 40th pass, which sorts 9750000 to 9999999."。显然作者的意思是对输入文件遍历40次,第一次遍历过程中将值大于0、小于249999的所有整数读入内存,然后进行快速排序,再写入目标文件;第二次遍历过程中将值大于250000、小于499999的所有整数读入内存,排完序后写入目标文件,后面依此类推。而译者的译文是:“我们将使用一个在输入文件中带有40个通道大程序。在第一个通道中它将0到249000之间的任意整数独到内存中,并(至多)对250000个整数进行排序,……”。再往后面看:“Multiple-Pass Algorithms. These algorithms make several passes over their input data, accomplishing a little more each time.",对应的译文是:“多通道算法。这些算法具有多个输入数据的通道,每读一次就向完成前进一步。”。译者可能也是没有看懂这个算法,硬是将“pass”翻译成风马牛不相及的“通道”。
这些只是前面两章中错的太离谱的两处,后面还有更多,懒得写了。不知道是译者的水平问题还是态度问题,竟把如此好的一本书给糟蹋了,默哀……
期待有新的中文版出现.毕竟,不是每个对这本书感兴趣的人都可以轻松的读懂原著。
建议大家目前还是看英文版吧,免得在译者错误的翻译上浪费时间...