Go Sort Examples
阿新 • • 發佈:2022-03-14
程式碼
package main import ( "fmt" "math/rand" "time" ) func bubbleSorter(integers [11]int) { var num = 11 var isSwapped bool isSwapped = true for isSwapped { isSwapped = false var i int for i = 1; i < num; i++ { if integers[i-1] > integers[i] { var temp = integers[i] integers[i] = integers[i-1] integers[i-1] = temp isSwapped = true } } } fmt.Println(integers) } func SelectionSorter(elements []int) { var i int for i = 0; i < len(elements)-1; i++ { var min int min = i var j int for j = i + 1; j <= len(elements)-1; j++ { if elements[j] < elements[min] { min = j } } swap(elements, i, min) } } func swap(elements []int, i int, j int) { var temp = elements[j] elements[j] = elements[i] elements[i] = temp } func randomSequence(num int) []int { var sequence []int = make([]int, num) rand.Seed(time.Now().UnixNano()) var i int for i = 0; i < num; i++ { sequence[i] = rand.Intn(999) - rand.Intn(999) } return sequence } func InsertionSorter(elements []int) { var n = len(elements) var i int for i = 1; i < n; i++ { var j int j = i for j > 0 { if elements[j-1] > elements[j] { elements[j-1], elements[j] = elements[j], elements[j-1] } j = j - 1 } } } func main() { var integers [11]int = [11]int{31, 13, 12, 4, 18, 16, 7, 2, 3, 0, 10} fmt.Println("Bubble Sorter") bubbleSorter(integers) var elements = []int{11, 4, 18, 6, 19, 21, 71, 13, 15, 2} fmt.Println("Before Selection Sorting ", elements) SelectionSorter(elements) fmt.Println("After Selection Sorting ", elements) var sequence []int = randomSequence(24) fmt.Println("\n^^^^^^ Before Insertion Sorting ^^^ \n\n", sequence) InsertionSorter(sequence) fmt.Println("\n--- After Insertion Sorting ---\n\n", sequence) }