二分法查询
数据结构:数组
二分法查也是数组排序常用的排序算法
先决条件:①被查询的数组必须是有序数组 比如 var data = []int{1,3,4,7,12,24,34,35}
个人理解:如上例子,取数组的中间下标,然后比较要查询的数和中间数的大小,如果大于中间数,则取中间数右侧数组进行比较,小于中间数,取左边数组进行比较。
时间复杂度:O(n)
代码如下:
package main import "fmt" /**e * @Author KyrieWang * @Description //TODO 二分法查找 找到=值 返回下标,否则返回 -1 * @Date 4:56 下午 2021/3/29 * @Param * @return */ func BinarySort(input []int, finddata int) int { lowIndex := 0 hightIndex := len(input) for lowIndex <= hightIndex { mid := (lowIndex + hightIndex) / 2 if finddata < input[mid] { hightIndex = mid - 1 } else if finddata > input[mid] { lowIndex = mid + 1 } else { return mid } } return -1 } func main() { testData := []int{1, 3, 5, 6, 8, 12, 13, 15, 24} fmt.Println(BinarySort(testData, 6)) }
你得先看重你自己,否则别人就会当你一钱不值。