数据结构(c++)-交换算法swap

1、错误交换

void swap (int x , int y)

{

int tmp;

tmp=x;

x=y;

y=tmp;

}

不能实现交换两个数据值

解释:c,c++都是按值传递的

2、传指针(c语言)

void swap (int *px , int *py)

{

int tmp;

tmp=*px;

*px=*py;

*py=tmp;

}

swap(&a,&b);  //拷贝的指针(地址)

此方法可以实现交换。(c,c++均可用)

3、宏定义方式交换(c语言常用)

#define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))

 SWAP(a,b,tmp)

4、引用方式交换(c++)

void swap (int &rx , int &ry)        //引用就是别名

{

 int tmp;

tmp=rx;

rx=ry;

ry=tmp;

}

5、模板交换

template void swap(T& x ,T& y)

using namespace std;

std::swap(a,b);



你可能感兴趣的:(数据结构与算法——C++)