淘客熙熙

主题:【原创】继续关于swap的讨论 -- 不锈钢破锣

共:💬22 🌺5 新:
全看分页树展 · 主题 跟帖
家园 呵呵,这个答案有问题

a和b可能是同一个地址的引用,例如在选择排序或是洗牌算法中调用swap(a[i], a[j])时可能i与j相等。

如果我没记错的话,TAOCP里的题目是有所不同的,所以我不是说K大的答案有问题。

如果是支持赋值表达式的语言,可以有如下的答案:

a = a + b - (b = a);

但这个方法和“经典答案”一样,如同楼下有人提到的,从编译器偷了临时变量。

这种题和IOCCC一样,作为趣味智力题就很好,但并不适合在实际中使用。

另外,我认为仅这个题目是上纲不到“计算机科学”的,对照自然科学的说法,说是属于“计算机工程”或“应用计算机学”比较合适。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河