go 冒泡排序

package main

import "fmt"

func main()  {
	a :=[8]int{24,69,80,57,13,1,100}
	//算出a的长度
	//n :=len(a)
    //0 1 2 3
    //冒泡排序
	/*for i:=0;i<5-1;i++ {
       for j:=0;j<5-1-i;j++{
       	  if a[j] > a[j+1]{
       	  	 a[j],a[j+1] = a[j+1],a[j]
		  }
	   }
	}

	fmt.Printf("\n培训后:\n")
	for i:=0;i< 5;i++{
		fmt.Printf("%d\n",a[i])
	}
	fmt.Println()*/

	//升序
   /* 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]
			}
		}
	}*/

	//降序
	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.Printf("\n排序后:\n")
	for i:=0;i< n;i++{
		fmt.Printf("%d\n",a[i])
	}
	fmt.Println()
}

  

package main

import (
	"math/rand"
	"time"
	"fmt"
)

func InitData(s []int)  {

	//设置种子
	rand.Seed(time.Now().UnixNano())

	for i:=0;i< len(s);i++{
		s[i]= rand.Intn(100) //100 以内的值
	}

}

//冒泡排序
func BubbleSort(s []int)  {
	 n :=len(s)
	 for i:=0;i<n-1;i++{
	 	for j:=0;j<n-1-i;j++{
	 		if s[j] > s[j+1]{
	 			s[j],s[j+1] = s[j+1],s[j]
			}
		}
	 }
}

func main()  {
	n := 10

	//创建切片
	s :=make([]int,n)
	InitData(s)
	fmt.Println("排序前",s)
	BubbleSort(s)

	fmt.Println("排序后",s)


}

  

posted @ 2019-12-21 10:29  往事随风_go  阅读(196)  评论(0编辑  收藏  举报