Swap(a,b)

定义int a,b;交换它们的值。
Way 1:

void Swap(int &a,int &b)
{
    int tmp=a;a=b;b=tmp;
}

最基本的三值交换法。

Way 2:

void Swap(int &a,int &b)
{
    a=a+b;b=a-b;a=a-b;
}

∵a=a+b;
b=a+b-b=a;
a=a+b-a=b;
∴b=a,a=b;
Way 3

void Swap(int &a,int &b)
{
    a^=b;b^=a;a^=b;
}

利用a xor b xor b=a的性质
Way 4

void Swap(int &a,int &b)
{
    a^=b^=a^=b;
}

类同Way 3;
用stack思考

选自《算法竞赛入门经典》-刘汝佳
转载请说明出处 : 1015606011@qq.com

全部评论

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务