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]
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值