1. 冒泡排序
func sortNum(nums []int) {
for i := 0; i < len(nums)-1; i++ {
for j := 0; j < len(nums)-i-1; j++ {
if nums[j] > nums[j+1] {
nums[j], nums[j+1] = nums[j+1], nums[j]
}
}
}
}
2. 快速排序
func sortNum(list []int, scope ...int) {
if len(scope) == 0 {
scope = []int{0, len(list) - 1}
}
if len(list) < 2 || scope[0] > scope[1] {
return
}
low, high := scope[0], scope[1]
index := rand.Intn(high-low+1) + low
povit := list[index]
list[index] = list[low]
for low < high {
for low < high && list[high] > povit {
high--
}
if low < high {
list[low] = list[high]
low++
}
for low < high && list[low] <= povit {
low++
}
if low < high {
list[high] = list[low]
high--
}
}
list[low] = povit
sortNum(list, scope[0], low-1)
sortNum(list, high+1, scope[1])
}
3. 插入排序
func sortNum(nums []int) {
for i := 1; i < len(nums); i++ {
for j := i; j != 0 && nums[j] < nums[j-1]; j-- {
nums[j], nums[j-1] = nums[j-1], nums[j]
}
}
}
4.选择排序
func sortNum(nums []int) {
var minIndex int
for i := 0; i < len(nums)-1; i++ {
minIndex = i
for j := i + 1; j < len(nums); j++ {
if nums[j] < nums[minIndex] {
minIndex = j
}
}
nums[minIndex], nums[i] = nums[i], nums[minIndex]
}
}