快速排序中交换两个数时,不使用辅助变量的bug. 陷阱
来源:互联网 发布:易语言获取js后的源码 编辑:程序博客网 时间:2024/06/14 17:28
在进行交换两个数据的时候,我们可以多种上方法实现。一般的是使用一个额外的辅助变量来做交换,其它是利用数学运算符来作交换了。
下面是几个实现数据的交换的函数。
第一类,使用辅助变量来完成交换
void swap1(int &a,int &b){ int temp=a; a=b; b=temp;}
第二类,使用运算符来完成交换。
void swap2(int &a,int &b){ a=a+b; b=a-b; a=a-b;}
void swap3(int &a,int &b){ a=a^b; b=a^b; a=a^b;}
void swap4(int &a,int &b){ a=a*b; b=a/b; a=a/b;}
但是在使用运算符完成数据交换时,对于同一个地址的数据交换会将该地直的值,变为0的。
如:
int a[]={5,6,7,8};
我们交换swap(a[0],a[0]). 注意:我们交换是数组中同一个位置上的数。
使用上面swap2-4:会使我们把a[0]变成0的。
这个要注意的。
0 0
- 快速排序中交换两个数时,不使用辅助变量的bug. 陷阱
- 交换两个数不使用临时变量的陷阱
- 不使用辅助变量的两个变量交换
- 不使用其他变量交换两个数
- 不使用中间变量交换两个数
- 不使用中间变量交换两个数
- 不使用中间变量交换两个数
- 不使用中间变量交换两个数
- 不使用临时变量 交换两个数
- 交换两个数 不使用中间变量
- 不使用临时变量交换两个数
- 交换两个数的值以及不使用临时变量交换两个数的值
- 不使用临时变量 交换两个数的值
- 不使用中间变量实现两个数的交换
- 如何不使用中间变量交换两个数的值
- 不使用临时变量交换两个数的值
- 交换两个数的值(不使用第三个变量)
- 两个整形数交换的算法,不使用其它变量
- css+div 图片排列布局
- HDU 1395(快速幂模板)
- POJ 2828 Buy Tickets
- 经典c程序(0004)---输入三个整数x,y,z,请把这三个数由小到大输出。
- Oracle PCTFREE PCTUSED FREELIST讲解
- 快速排序中交换两个数时,不使用辅助变量的bug. 陷阱
- CCLabelTTF和CCLabelAtlas区别(三种文字类的区别)
- NYOJ 20 吝啬的国度
- 贪心算法- 杭电OJ 1009 FatMouse' Trade
- ROS机器人小车素材
- UNIX Network Programming笔记之第二章
- HDU 1846 Brave Game
- 一些小技巧
- uva11525 - Permutation 线段树加速康托展开