出版社的一个错误
来源:互联网 发布:嘉兴市行知小学怎么样 编辑:程序博客网 时间:2024/04/30 00:52
《C程序设计语言》一书上的一个“快速算法”的实现好像是一个错的。我昨天晚上在机器上做了一遍,结果是错的。昨天花了一整天的时间来研究这个“快速算法”。查了不少的书。唯独K&R的这本《C程序设计语言》这本书上的“快速算法”有点怪。其效率差得出奇--我在纸上演示过。但严蔚敏的《数据结构--C语言描述》这本书上对“快速算法”的阐述要清楚多了,还查了几本书,都与严的书上的精神大致相同。我晚上在Turbo C 2.0和Dev-C++上做了,还是错的。今天早上在网上查了中文译版的,跟我书上的一模一样,又下载了一本英文版的,还是一模一样……
还是在努力想想,或者是我错了呢;要是真的作者错了。我还可以把它改过来。
几天过去了……
《C程序设计》(中文版)中P73页中的那个快速算法是印错的,而不是作者K&R的错。今天,我在英文原版中对照看才知道的。
原版中这个程序如下:
void q_sort(int v[], int left, int right)
{
int i, last;
void swap(int v[], int i, int j);
if (left >= right) /* do nothing if array contains */
return; /* fewer than two elements */
swap(v, left, (left + right) / 2); /* move partition elem */
last = left; /* to v[0] */
for (i = left + 1; i <= right; i++) /* partition */
if (v[i] < v[left])
swap(v, ++last, i);
swap(v, left, last); /* restore partition elem */
q_sort(v, left, last - 1);
q_sort(v, last + 1, right);
}
而中文版中如下:
void q_sort(int v[], int left, int right)
{
int i, last;
void swap(int v[], int i, int j);
if (left >= right) /* do nothing if array contains */
return; /* fewer than two elements */
swap(v, left, (left + right) / 2); /* move partition elem */
last = left; /* to v[0] */
for (i = left + 1; i <= right; i++) /* partition */
if (v[i] < v[left])
swap(v, ++last, i);
/* 这个last已经错印成right了 */
swap(v, left, right); /* restore partition elem */
q_sort(v, left, last - 1);
q_sort(v, last + 1, right);
}
错,于已可以尽量避免,于人尽量宽容。
- 出版社的一个错误
- 国内出版社的不足之处
- ICML的出版社问题
- [全程建模]一个国内著名出版社邀请我写书的响应
- [全程建模]一个国内著名出版社邀请我写书的响应之二
- [全程建模]一个国内著名出版社邀请我写书的响应之二
- [全程建模]一个国内著名出版社邀请我写书的响应
- 推荐一个近期无线&计算机领域的会议[cps出版社,提交ei/cpci检索]
- 线上出版社的一些想法
- 出版社编辑策划人员的八荣八耻
- 跑在SOA上的出版社
- 国内IT出版社的四大软肋
- 推荐图灵出版社的图书
- 出版社后台系统 的几个问题总结
- ISBN编号的国家地区语言代码,出版社代码规则,中国出版社ISBN代码
- 光明日报出版社-出版社介绍
- 一个恼人的错误~
- 今天的一个错误
- linux device driver
- 内容管理系统(CMS)的设计和选型
- CPU处理器 术语解释 前端总线
- CPU处理器 术语解释 外频
- 又要出差了
- 出版社的一个错误
- 擁抱幸福的自己
- J2SE 5.0中增强的Looping
- 软件开发应该研读的5本书
- pdfFactory Pro 2.37 windows 2000 Server 上安装办法
- 11 things
- 3月13日 可以和内核通信了
- 如何配置Tomcat 5和IIS 5协同工作
- 读《打败麦肯锡》有感