Go语言 大话数据结构——冒泡排序

知识内容详见《大话数据结构》P378

代码实例:

package main

import (
	"math/rand"
	"time"
	"fmt"
)
/*
 思想:  第一轮排序:两两比较,最大的排序到最末尾(冒出来:即冒泡)
         第二轮排序:两两比较,(第一轮剩余)最大的排序到次末尾(剩余组大的冒出来:即冒泡)
         执行以上操作,经过n-1轮的排序,即可完成
*/
func BubbleSort(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]
			}
		}
	}
  fmt.Println("通过冒泡排序之后的切片为:")
	fmt.Println(a)
}
func main() {
	rand.Seed(time.Now().UnixNano())
	arr:=make([]int,0)
	for i:=0;i<10;i++{
		arr=append(arr,rand.Intn(100))
	}
	fmt.Println("排序之前的切片为:")
	fmt.Println(arr)
	BubbleSort(arr)
	
}

猜你喜欢

转载自blog.csdn.net/weixin_42117918/article/details/82228231