1. 程式人生 > >go實現地精排序演算法

go實現地精排序演算法

前面我們詳細的講解了地精排序演算法,現在我們用go語言來實現下

package main

import "fmt"

//地精排序
func gnomeSort(theArray []int) []int {
	i := 0
	for i<len(theArray){
		if i==0 || theArray[i-1] <= theArray[i]{
			i++
		}else{
			theArray[i-1], theArray[i] = theArray[i], theArray[i-1]
			i--
		}
	}
	return theArray
}

func main() {
	var theArray = []int{10,1,18,30,23,12,7,5,18,17}
	fmt.Print("排序前")
	fmt.Println(theArray)
	fmt.Print("排序後")
	fmt.Println(gnomeSort(theArray))
}

我們執行下,看結果

排序前[10 1 18 30 23 12 7 5 18 17]
排序後[1 5 7 10 12 17 18 18 23 30]

符合預期