Swap函数实现
来源:互联网 发布:网络天才akinator很卡 编辑:程序博客网 时间:2024/04/30 00:53
Swap函数
基本实现
1)一般实现(需临时变量)
// 引用实现Swap1(int &x, int &y){ int temp; temp = x; x = y; y = temp;}// 调用int x = 5;int y = 6;Swap1(x, y);// 指针实现Swap1(int *x, int *y){ int temp; temp = *x; *x = *y; *y = temp; }// 调用int x = 5;int y = 6;Swap1(&x, &y);
2)利用异或操作实现(不需临时变量)
// 引用实现 void Swap2(int &x, int &y) { x ^= y; y ^= x; x ^= y; } // 调用 int x = 5; int y = 6; Swap2(x, y); // 指针实现 void Swap2(int *x, int *y) { *x ^= *y; *y ^= *x; *x ^= *y; } // 调用 int x = 5; int y = 6; Swap2(&x, &y);
3)利用加减操作实现(不需临时变量)
// 引用实现 void Swap3(int &x, int &y) { x = x + y; y = x - y; x = x - y; } // 调用 int x = 5; int y = 6; Swap3(x, y); // 指针实现 void Swap3(int *x, int *y) { *x = *x + *y; *y = *x - *y; *x = *x - *y; } // 调用 int x = 5; int y = 6; Swap3(&x, &y);
宏定义实现
#define swap(x, y) { x ^= y; y ^= x; x ^= y; }#define swap(x, y) { x = x + y; y = x - y; x = x - y; }// 调用int x = 5;int y = 6;swap(x, y);
模板实现
1)一般实现(需临时变量)
// 引用实现template <class T> void Swap(T& x, T& y){ T temp; temp = x; x = y; y = temp;}// 调用double x = 5.5;double y = 6.5;Swap(x, y);// 指针实现template <class T> void Swap(T* x, T* y){ T temp; temp = *x; *x = *y; *y = temp;}// 调用double x = 5.5;double y = 6.5;Swap(&x, &y);
2)利用加减操作实现(不需临时变量)
// 引用实现template <class T1, class T2> void Swap(T1& x, T2& y){ x = x + y; y = x - y; x = x - y;}// 调用double x = 5.5;double y = 6.5;Swap(x, y);// 指针实现template <class T1, class T2> void Swap(T1* x, T2* y){ *x = *x + *y; *y = *x - *y; *x = *x - *y;}// 调用 double x = 5.5;double y = 6.5;Swap(&x, &y);
注意:由于异或实现,是针对整数实现的,故不建议利用模板实现。原因:当用模板方式实现利用异或方法交换两个数,调用时,交换函数传入两个double类型的变量,此时编译就会出错。
0 0
- swap函数实现
- swap()函数实现
- Swap函数实现
- Swap函数的实现
- swap函数的实现方式
- mips汇编语言之实现swap函数
- java中swap函数的实现分析
- C语言实现泛型swap函数
- swap()函数的几种实现
- swap交换函数的三种实现
- 实现swap函数的简单应用
- 交换两个值函数swap()实现小结
- java反射机制实现swap函数
- swap函数
- swap函数
- swap函数
- swap函数
- swap函数
- POJ1182食物链(结构体+并查集)
- 剑指offer面试题 求二叉数的深度
- 码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable
- 网站敏感骂人词库及算法(附6仟个敏感词)
- Linux命令学习手册-od命令
- Swap函数实现
- shell 获取当前日期,当前时间
- 我是一个线程(修订版)----工作十五年的IBM架构师创作
- Android利用LocalSocket实现Java端进程与C端进程之间的IPC
- 3种方法教你应对高智商型反社会人格者
- 关于程序员职业生涯的若干问题思考
- android 滑动事件冲突解决 Touch事件处理机制
- [JAVA · 初级]:16.常用类
- 【HDU 1396】 【ZOJ 1629】 Counting Triangles