首页 > 编程语言 > 详细

算法题汇总

时间:2015-10-07 18:46:08      阅读:314      评论:0      收藏:0      [点我收藏+]

1. 交换两个整型变量值,要求不定义新变量作为临时变量


• 算法一

? 算法实现

template <class T>
void g_SwapInteger(T &a, T &b)
{
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}

? 算法证明

a0 = a                 b0 = b
a1 = a0 ^ b0 = a ^ b         b1 = b0 = b
a2 = a1 = a ^ b          b2 = a1 ^ b1 = a ^ b ^ b = a
a3 = a2 ^ b2 = a ^ b ^ a = b   b3 = b2 =a

• 算法二

? 算法实现

template <class T>
void g_SwapInteger(T &a, T &b)
{
    a = a - b;
    b = a + b;
    a = b - a;
}

? 算法证明

a0 = a,              b0 = b
a1 = a0 - b0 = a - b,        b1 = b0 = b
a2 = a1 = a - b,          b2 = a1 + b1 = a - b + b = a
a3 = b2 - a2 = a - (a - b) = b,   b3 = b2 = a

算法题汇总

原文:http://www.cnblogs.com/heartchord/p/algorithm.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!