swap:临时变量vs和交换vs位运算 时间对比
来源:互联网 发布:彩虹岛 知乎 编辑:程序博客网 时间:2024/04/30 21:39
/*1 编写一个函数,不用临时变量,直接交换两个数*/void swap0(int* a, int* b){int temp;temp = *a;*a = *b;*b = temp;}void swap1(int* a, int* b){*a = *a + *b;*b = *a - *b;*a = *a - *b;}void swap2(int *a, int* b){*a = *a ^ *b;*b = *a ^ *b;*a = *a ^ *b;}#include "time.h"#include "iostream"int main(){clock_t t0;clock_t t1;int a = 1; int b = 2;t0 = clock();for (int i = 0; i < 10000; i++){for (int j = 0; j < 100; j++)swap0(&a, &b);}t1 = clock();std::cout << "swap0(): " << t1 - t0 << "ms" << std::endl;t0 = clock();for (int i = 0; i < 10000; i++){for (int j = 0; j < 100; j++)swap1(&a, &b);}t1 = clock();std::cout << "swap1(): " << t1 - t0 << "ms" << std::endl;t0 = clock();for (int i = 0; i < 10000; i++){for (int j = 0; j < 100; j++)swap2(&a, &b);}t1 = clock();std::cout << "swap2(): " << t1 - t0 << "ms" << std::endl;return 0;}
实验结果:
swap0(): 30msswap1(): 34msswap2(): 27ms
实验标明:速度 位运算>临时变量>和运算。
分析:和运算里用到了加减操作,所以会比临时变量慢。
0 0
- swap:临时变量vs和交换vs位运算 时间对比
- 交换两个值,不用临时变量(C位运算)
- C语言交换两个变量(不创建临时变量)(位运算简介)
- 位运算实现两个值交换(swap)
- xcode和vs对比
- 一种不用临时变量的交换swap方法
- 位运算 & | ^ ~ 和三种变量交换方式
- 位运算之两个变量的交换
- 小技巧:位运算实现变量交换
- swap交换两个变量
- 不使用 临时变量交换两个变量的值(SWAP)【原理分析】
- SQL Server中的表变量 Vs. 临时表
- 无临时变量交换变量
- VS和eclipse常用快捷键对比
- 通过位运算交换a 和 b
- 电路交换Vs分组交换
- 分组交换VS电路交换
- java实现位运算交换两个变量的值
- First Missing Positive
- Prim算法
- Javaweb中的文件批量上传,并将文件路径等信息保存到数据库中
- (有码)OC单例
- 小eval解决大问题---python
- swap:临时变量vs和交换vs位运算 时间对比
- fiddler显示请求的ip地址
- 自定义View系列教程02--onMeasure源码详尽分析
- 【最长回文子串】HDU3068最长回文【Manacher算法】
- NSString
- 利用curl进行逆地理编码_c语言编写动态链接库对PostgreSQL进行扩展
- APIO滚粗记
- 内聚 耦合
- HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(巴什博奕)