三分查找法
三分查找法的核心思想
关键词:两个枢轴
三分查找法和二分查找法相比,只是多了一个枢轴。
代码实现
func ThirdSearch(arr []int, data int) int {
low := 0
high := len(arr) - 1
i := 0
//循环的终止条件
for low <= high {
i++
fmt.Println("第", i, "次")
// 初始化枢轴
mid1 := low + int((high-low)/3)
mid2 := high - int((high-low)/3)
// 枢轴
midData1 := arr[mid1]
midData2 := arr[mid2]
if midData1 == data {
return mid1
} else if midData2 == data {
return mid2
}
if midData1 < data {
low = mid1 + 1
} else if midData2 > data {
high = mid2 - 1
} else {
low = low + 1
high = high - 1
}
}
return -1
}