冒泡排序
package main
import "fmt"
//冒泡排序
func BubbleSort(arr *[5]int) {
fmt.Println("before sort: ", (*arr))
temp := 0
//i表示比较趟数,比较一趟确定一个数的最终位置
for i := 0; i < len(*arr)-1; i++ {
for j := 0; j < len(*arr)-1-i; j++ {
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
}
}
}
fmt.Println("after sort: ", (*arr))
}
func main() {
arr := [5]int{24, 69, 80, 57, 13}
BubbleSort(&arr)
}
顺序查找
package main
import "fmt"
func main() {
names := [4]string{"A", "B", "C", "D"}
var name = ""
fmt.Scanln(&name)
var index = -1
for i := 0; i < len(names); i++ {
if name == names[i] {
index = i
break
}
}
if index == -1 {
fmt.Println("can not find")
} else {
fmt.Printf("find index: ", index)
}
}
二分查找
package main
import "fmt"
func BinarySearch(arr *[6]int, left int, right int, find int) {
if left > right {
fmt.Println("can not find.")
return
}
middle := (left + right) / 2
if (*arr)[middle] > find {
BinarySearch(arr, left, middle-1, find)
} else if (*arr)[middle] < find {
BinarySearch(arr, middle+1, right, find)
} else {
fmt.Println("finded, index is: ", middle)
}
}
func main() {
arr := [6]int{1, 6, 777, 987}
BinarySearch(&arr, 0, len(arr), 777)
}
插入排序
package main
import "fmt"
func InsertSort(arr *[5]int) {
for i := 1; i < len(arr); i++ {
insertValue := arr[i]
insertIndex := i - 1
for insertIndex >= 0 && insertValue > arr[insertIndex] {
arr[insertIndex+1] = arr[insertIndex]
insertIndex--
}
if insertIndex+1 != i {
arr[insertIndex+1] = insertValue
}
fmt.Printf("---%d----%v\n", i, *arr)
}
}
func main() {
arr := [5]int{23, 0, 12, 56, 34}
InsertSort(&arr)
}