在Go语言中使用冒泡排序?

冒泡排序实现

/*
go语言中数组的定义:
1.用var关键字定义, var arr [5]int, 需要指定元素个数;
2.用:=定义, arr := [3]int{1,3,5}, 需要赋初值
  用:=定义, 由编译器计算元素个数,arr:= [...]int{1,2,3,4,5}
*/
/*
冒泡排序:第1个元素和第2个元素比较,若a[j] > a[j+1], 那么交换位置
0. 思想:n个元素,依次处理每个元素,因此需要处理n次;

1. 需要使用两层循环,2个元素只需比较1次,外层循环 n-1 次
2. 关键点在内层循环处理次数, n个元素需要处理n-1次,但是每次处理完1个元素后,下次处理 -1 次
   因此,内层总的处理次数为 n-1-i,
 */

 /* Go 一些语法规则
 1. go中函数定义,
 2. 函数形参,参数在前,类型在后,a[] int
 3. go中,求数组长度,用len()
 */

package main

import "fmt"

func bubble_sort(a[] int){
   n := len(a)
   for i:=0; i<n-1; i++ {
      for j:=0; j<n-1-i; j++ {
         if a[j] > a[j+1] {
            a[j], a[j+1] = a[j+1], a[j]
         }
      }
   }
}

// 数组打印函数
func print_arr(a[] int)  {
   n := len(a)
   for i:=0;i<n;i++{
      fmt.Printf("%d",a[i])
   }
   fmt.Printf("\n")
}

func main() {

   a := []int{5,3,6,8,2,1,9,0}

   print_arr(a)
   bubble_sort(a)
   print_arr(a)

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值