交换算法经常使用的两个数的值
生活随笔
收集整理的這篇文章主要介紹了
交换算法经常使用的两个数的值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
交換兩個變量值,老話題,下面總結的各種方法是。
為了方便,首先定義兩個變量。
一 借助暫時變量
1 交換變量值
int tmp; tmp = a; // tmp = 1 a = b; // a = 2 b = tmp; // b = 12 交換地址
int *p; p = &a; // tmp->1 a = &b; // a->2 b = p; // b ->1二 不借助第三個變量
1 加減法
a = a + b // a = 3 b = a - b // b = 1 a = a - b // a = 22 乘除法
a = a * b // 2 b = a / b // 2 a = a / b // 13 異或法
// a:0000 0001 // b:0000 0010 a = a ^ b // a:0000 0011 b = a ^ b // b:0000 0001 a = a ^ b // a:0000 0010對于上面各種方法,中間變量須要額外的內存空間。
加減法和乘除法有可能出現越界,或者被除數為0的情況,并且僅僅適用于數字運算;
比較好的是最后一種,內存低層操作(/*通用的各種數據類型*/,這個地方是我弄錯,異或僅僅能用于整型, 感謝xiacanni的提醒)。
版權聲明:本文博主原創文章。博客,未經同意不得轉載。
總結
以上是生活随笔為你收集整理的交换算法经常使用的两个数的值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux学习笔记——grub故障排除
- 下一篇: python----面向对象:1类的定义