数据结构
目录:
查找
折半查找
-
复杂度:
O(logn)
-
对象:排序的数组
-
内容:
- 设置高低指针
- 中间开始,如果值相等则结束
- 值不相等,高低指针向中间迫近
- 指针相遇,结束
-
实现
func BinarySearch(arr []int, goal int) int { // 取高低索引 low, high := 0, len(arr)-1 // 指针未相遇的时候循环 for low <= high { mid := low + (high-low)>>1 midV := arr[mid] // 符合条件,返回索引 if midV == goal { return mid } // 不符合条件,高低指针向中间迫近 if midV < goal { low = mid + 1 } else { high = mid - 1 } } return -1 }
排序
快速排序
x s