题意整理。
- 实现两个整数的交换。
- 要求使用引用方式实现。
方法一(交换地址)
1.解题思路
- swap函数中,如果不加地址符,交换是两个变量的值,如果加了地址符,则交换的是引用。
图解展示:
2.代码实现
#include <iostream>
using namespace std;
//交换m、n
void swap(int &m,int &n){
//将m的地址给temp
int temp=m;
//将n的地址赋给m
m=n;
//将temp保存的地址重新赋给n
n=temp;
}
int main() {
int m, n;
cin >> m;
cin >> n;
//调用swap函数
swap(m,n);
cout << m << " " << n << endl;
return 0;
}
3.复杂度分析
- 时间复杂度:需要进行常数次操作,所以时间复杂度为O(1)。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)。