Go語言中元素交換的三種方式

在實現排序算法時候經常用到元素交換,以下用冒泡排序算法來解釋在Go語言中交換元素的三種方式。

//冒泡排序
b:=[...]int{3,1,6,99,9}
fmt.Println(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
      }

   }
}
fmt.Println(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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章