首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于两数互换的算法

2012-11-07 
关于两数交换的算法更多资料参见http://hi.baidu.com/chengui0327/blog/item/be7be30109086e19738b653e.ht

关于两数交换的算法

void swap4(int *a, int *b){    if(a <b)    {        a=(int*)(b-a);                      /* 用两个变量分配的地址来转换 */        b=(int*)(b-(int(a)&0x0000ffff));     /* int(a)&0x0000ffff 为取低16位的偏移地址 */        a=(int*)(b+(int(a)&0x0000ffff));    }    else    {        b=(int*)(a-b);        a=(int*)(a-(int(b)&0x0000ffff));        b=(int*)(a+(int(b)&0x0000ffff));    }          /* 优点:不会溢出,可进行相同数值的交换; 缺点:运算复杂 且必须假设两待交换变量为指针类型  */}

热点排行