GO语言学习 {#go语言学习}
排序算法 {#排序算法}
冒泡排序 {#冒泡排序}
package main
import "fmt"
/* * 冒泡排序 */ func main() { var arr = []int{5, 8, 4, 9, 1, 3, 4, 7}
for i := len(arr) - 1; i >= 1; i-- { var flag bool = false for j := 0; j < i; j++ {
if arr[j] > arr[j+1] { var num int = arr[j+1] arr[j+1] = arr[j] arr[j] = num flag = true } } if !flag { break }
}
fmt.Println(arr)
}
选择排序 {#选择排序}
package main
import "fmt"
/* 选择排序 */ func main() { var arr = []int{5, 8, 4, 9, 1, 3, 4, 7} _ = arr
for i := 0; i < len(arr); i++ { var minIndex = i for j := i + 1; j < len(arr); j++ { if arr[j] < arr[minIndex] { minIndex = j } } var tmp = arr[i] arr[i] = arr[minIndex] arr[minIndex] = tmp }
fmt.Println(arr)
}
插入排序 {#插入排序}
package main
import "fmt"
/* 插入排序 */ func main() { var arr = []int{5, 8, 4, 9, 1, 3, 4, 7}
for i := 1; i <= len(arr)-1; i++ { var tmp = arr[i] var index = i for j := i - 1; j >= 0; j-- { if tmp < arr[j] { arr[j+1] = arr[j] index = j } else { break } arr[index] = tmp } }
fmt.Println(arr)
}
希尔排序 {#希尔排序}
package main
import "fmt"
/* 希尔排序 */ func main() { var arr = []int{5, 8, 4, 9, 1, 3, 4, 7} _ = arr
for gap := len(arr) / 2; gap > 0; gap = gap / 2 { for i := gap; i < len(arr); i = i + gap { var tmp = arr[i] var index = i for j := i - gap; j >= 0; j = j - gap { if tmp < arr[j] { arr[j+gap] = arr[j] index = j } else { break } } arr[index] = tmp } }
fmt.Println(arr)
}