主题:【原创】继续关于swap的讨论 -- 不锈钢破锣
- 共: 💬 22 🌺 5
a和b可能是同一个地址的引用,例如在选择排序或是洗牌算法中调用swap(a[i], a[j])时可能i与j相等。
如果我没记错的话,TAOCP里的题目是有所不同的,所以我不是说K大的答案有问题。
如果是支持赋值表达式的语言,可以有如下的答案:
a = a + b - (b = a);
但这个方法和“经典答案”一样,如同楼下有人提到的,从编译器偷了临时变量。
这种题和IOCCC一样,作为趣味智力题就很好,但并不适合在实际中使用。
另外,我认为仅这个题目是上纲不到“计算机科学”的,对照自然科学的说法,说是属于“计算机工程”或“应用计算机学”比较合适。
- 相关回复 上下关系8
【原创】继续关于swap的讨论 3 不锈钢破锣 字1552 2003-11-16 19:28:29
😉有意思的问题 ericxy 字360 2006-11-06 00:51:50
😏呵呵,这个答案有问题
🙂【原创】补充一点 无斋主人 字686 2006-10-29 00:30:46
😉有重大问题请教----- 1 觉昌安塔克世 字513 2006-10-27 15:38:47
🙂放到寄存器呀。。。 大大的熊 字0 2006-10-28 14:06:49
🙂不管放到什么地方, 觉昌安塔克世 字78 2006-10-28 17:07:59
🙂是这样的,首先寄存器的读取速度远远快于内存。 kavin 字628 2006-10-30 03:28:59