题意整理。

  • 实现两个整数的交换。
  • 要求使用引用方式实现。

方法一(交换地址)

1.解题思路

  • swap函数中,如果不加地址符,交换是两个变量的值,如果加了地址符,则交换的是引用。

图解展示: alt

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)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)O(1)