📜  在Golang中查找指定数字的整数值(1)

📅  最后修改于: 2023-12-03 14:51:16.117000             🧑  作者: Mango

在Golang中查找指定数字的整数值

在Golang中,我们可以通过遍历数组的方式查找指定数字的整数值。下面是一些常用的方法。

方法一:遍历数组

我们可以使用 for 循环遍历数组,使用 if 语句判断每个元素是否等于指定数字,如果找到则返回该元素的下标。

func findIndex(arr []int, num int) int {
    for i, n := range arr {
        if n == num {
            return i
        }
    }
    return -1
}

在上面的代码中,我们定义了一个 findIndex 函数,接收一个数组和一个数字作为参数,返回数字在数组中的下标,如果找不到则返回 -1。我们使用 range 遍历数组元素,如果找到了指定数字则返回其下标,如果未找到则返回 -1。

方法二:使用二分查找

如果数组已经排序,则我们可以使用二分查找的方式更高效地找到指定数字的整数值。

func binarySearch(arr []int, num int) int {
    left, right := 0, len(arr)-1
    for left <= right {
        mid := left + (right-left)/2
        if arr[mid] == num {
            return mid
        } else if arr[mid] < num {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    return -1
}

在上面的代码中,我们定义了一个 binarySearch 函数,接收一个已排序的数组和一个数字作为参数,返回数字在数组中的下标,如果找不到则返回 -1。我们使用 left 和 right 两个指针分别指向数组的第一个和最后一个元素,然后在循环中计算中间位置的下标 mid,并使用 if 语句判断 mid 对应的元素与指定数字的大小关系,如果 mid 对应的元素等于指定数字则返回 mid,如果 mid 对应的元素小于指定数字则将 left 指针移到 mid+1 位置,如果 mid 对应的元素大于指定数字则将 right 指针移到 mid-1 位置。

总结

在本文中,我们介绍了两种在 Golang 中查找指定数字的整数值的方法,第一种方法是遍历数组,第二种方法是使用二分查找。对于未排序的数组,第一种方法的时间复杂度为 O(n),对于已排序的数组,第二种方法的时间复杂度为 O(logn)。因此,使用二分查找能更高效地查找指定数字的整数值。