Go - 26 Go 二分查找
// 二分查找
func BinaryFind(arr *[6]int, lindex int, rindex int, target int) {
    // 当 lindex > rindex 时 是肯定找不到的
    if lindex > rindex {
        fmt.Println("找不到~~~")
        return 
    }
    // 获取中间位置的下标
    mindex := (lindex + rindex) / 2
    if (*arr)[mindex] < target {
        BinaryFind(arr, mindex + 1, rindex, target)
    }else if (*arr)[mindex] > target {
        BinaryFind(arr, lindex, mindex - 1, target)
    }else {
        fmt.Println("找到了,下标为=", mindex)
    }
}
// 二分查找(前提是 数组有序)
binary_arr := [...]int{1,8,10,89,100,123}
fmt.Println(binary_arr)
BinaryFind(&binary_arr, 0, len(binary_arr)-1, 100)
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号