1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| package main
import "fmt"
func main() { arr := [5]int{23, 56, 2, 117, 88} fmt.Println(arr) BubbleSort(&arr) fmt.Println("sort:", arr) fmt.Println("------------------------------")
arrs := [10]int{1, 23, 45, 78, 90, 115, 456, 980, 1000, 1200} search := binarySearch(arrs, 1) if search == -1 { fmt.Println("不存在") } else { fmt.Println(search) }
BinaryFind(&arrs, 0, len(arrs)-1, 15) }
func BubbleSort(arr *[5]int) { for i := 0; i < len(*arr)-1; i++ { swap := false for j := 0; j < len(*arr)-1-i; j++ { if (*arr)[j] > (*arr)[j+1] { (*arr)[j], (*arr)[j+1] = (*arr)[j+1], (*arr)[j] swap = true } } if !swap { break } } }
func SequentialLookup() { names := [5]string{"JOJO", "Tom", "打怪", "小怪", "lyrics"} var yourName string fmt.Scanln(&yourName) index := -1 for i := 0; i < len(names); i++ { if yourName == names[i] { index = i } }
if index != -1 { fmt.Println("找到", yourName) } else { fmt.Println("没找到", index, yourName) } }
func binarySearch(arrs [10]int, key int) int { left := 0 right := len(arrs) - 1 for right >= left { mid := left + (right-left)/2 if arrs[mid] == key { return mid } if key > arrs[mid] { left = mid + 1 } else { right = mid - 1 } } return -1 }
func BinaryFind(arr *[10]int, left, right, key int) { if left > right { fmt.Println("不存在", key) return } mid := (left + right) / 2 if key > (*arr)[mid] { BinaryFind(arr, mid+1, right, key) } else if key < (*arr)[mid] { BinaryFind(arr, left, mid-1, key) } else { fmt.Println("找到了值:", key, " ", mid) } }
|