2019年2月

package main

import "fmt"

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

//选择排序
func csort(a []int){
    for i :=0; i < len(a); i++{
        minIndex := i
        for j:=i+1; j<len(a);j++{
            if a[j] < a[j-1]{
                minIndex = j
            }

            if minIndex != i{
                a[i],a[minIndex] = a[minIndex],a[i]
            }
        }
    }
}

//插入排序
func insertionSort(a []int){
    for i :=0;i<len(a);i++{
        for j :=i;j>0;j--{  //已经排好序的数
            if a[j-1] < a[j]{
                break
            }
            a[j-1],a[j] = a[j], a[j-1]
        }

    }
}

func main(){
    a := [...]int{8,7,6,5,2,12,433}
    b := [...]int{8,7,6,5,2,12,433}
    c := [...]int{54,8,7,53,10,6,5,2,12,6789,433}
    bsort(a[:])
    csort(b[:])
    insertionSort(c[:])
    fmt.Println(c)
}