Go语言中元素交换的三种方式

时间:2025-02-23 07:54:44

在实现排序算法时候经常用到元素交换,以下用冒泡排序算法来解释在Go语言中交换元素的三种方式。

//冒泡排序
b:=[...]int{3,1,6,99,9}
(b)
num:=len(b)
for i:=0;i<num ;i++  {
   for j:=i+1;j<num ;j++  {
      if b[i]<b[j]{
         temp:=b[i]
         b[i]=b[j]
         b[j]=temp
      }

   }
}
(b)

运行结果

[3 1 6 99 9]
[99 9 6 3 1]

这里就是使用到元素交换的第一种方法
使用temp存储一个值,

temp:=b[i]
  b[i]=b[j]
  b[j]=temp

第二种就是Go语言中特有的,

b[i],b[j]=b[j],b[i]

效率最佳,最易读。
第三种就有些难理解了,如果经常把成程序写成第三种就有一种装逼的嫌疑了

b[i]=b[i]+b[j]
b[j]=b[i]-b[j]
b[i]=b[i]-b[j]