go-排序和查找
1.冒泡排序
func main() { arr := [6]int{32,4,5,23,12,1} BubbleSort(&arr) fmt.Println("main arr=", arr) } func BubbleSort(arr *[6]int) { fmt.Println("排序前arr=", (*arr)) temp := 0 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("排序后arr=", (*arr)) }
2.二分法排序
func main() { arr := [6]int{1,2,5,9,89,100} BinaryFind(&arr, 0, len(arr)-1, 9) fmt.Println("main arr=", arr) } func BinaryFind(arr *[6]int, leftIndex int, rightIndex int, findVal int) { if (leftIndex > rightIndex) { fmt.Println("招不到") return } middle := (leftIndex+rightIndex)/2 if (*arr)[middle] > findVal { BinaryFind(arr, leftIndex, middle-1, findVal) } else if (*arr)[middle] < findVal { BinaryFind(arr, middle+ 1, rightIndex, findVal) } else { fmt.Printf("找到了%v", middle) } }
本作品采用《CC 协议》,转载必须注明作者和本文链接