在實現排序算法時候經常用到元素交換,以下用冒泡排序算法來解釋在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]