51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Go语言学习

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)

}


赞(4)
未经允许不得转载:工具盒子 » Go语言学习