二分查找

Posted by アライさん on 2019年10月22日

需要数据已经排序好

二分查找的效率是log N。
log指log2。
100个元素,就是log(2)100 = 10。
10次可以找到。
效率为O(log n)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fun main(args: Array<String>) {
var result = 9//要查找的数据
var list = arrayListOf<Int>(1,3,5,7,9)
var low = 0
var high = list.size -1

while (low <= high){
var mid = (low + high) / 2
var guess = list[mid]
print(guess.toString() + "、")
if (guess == result){
//TODO 找到了
print("找到了")
return
}else if (guess > result){
high = mid - 1
}else {
low = mid + 1
}
}
}