关于C语言中交换两个数的代码探讨
2016-09-09 10:45
302 查看
#include <stdio.h> // There is no need to allocate the third position for temp void reverse_array(int a[], int cnt) { int first, last; for (first=0, last=cnt-1; first<last; first++, last--) { inplace_swap(&a[first], &a[last]); } } int main() { int a[5] = {1,2,3,4,5}; reverse_array(a, 5); for (int i=0; i<5; i++) { printf("%d ", a[i]); } printf("\n"); return 0; }
这里的交换数据采用了布尔代数中的布尔环,如果采用
void inplace_swap(int *x, int *y) { int itmp = *x; *x = *y; *y = itmp; }虽然性能上并没有损失,却浪费了空间,无论是通过int数值交换还是利用临时指针进行交换。如果是对struct进行交换,那么最好的方法无疑就是
void inplace_swap(int *x, int *y) { int *ptmp = x; x = y; y = ptmp; }
相关文章推荐
- 关于C语言交换两个数的实现方法以及个人心得
- 关于c语言中交换两个数的方法
- 关于C语言中函数调用和参数传递机制的探讨(ZZ)
- 关于C语言中的一段代码的运行菜鸟问的
- 关于C语言指针和数组的深入探讨
- 关于JAVA像C语言那样从控制台接收输入的字符的方法(一些代码转载)
- [c语言笔记]关于指针操作中使用异或交换两个变量的值
- 关于PB代码重用的全面探讨
- 转载-关于C语言中函数调用和参数传递机制的探讨
- 关于C语言中函数调用和参数传递机制的探讨
- c语言不使用中间变量交换两个数
- C语言的代码规范探讨
- 关于优化C语言代码
- 关于C语言判断文件尾问题的探讨
- 关于C语言结构体对齐问题的探讨
- 关于C语言中函数调用和参数传递机制的探讨
- C语言实现交换两个数
- 关于PB代码重用的全面探讨
- 关于C语言中函数调用和参数传递机制的探讨(二 .传递一个参数)
- 简单的比较C语言下交换a,b数值的代码效率