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

全部评论

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
06-07 21:26
江南大学 C++
话不多说,直接上时间线和图片1.2024年10月底发offer,并签三方2.2025年5月底公司违约
从零开始的转码生活:希望所有签了三方但直接违约的公司都倒闭!都倒闭!都倒闭!
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务