从线性搜索到二分搜索
Linear Search也就是brute force(暴力破解)
例: 求一个数的平方根
1 | private int sqrt(int n) { |
如下图所示:
Binary Search(二分搜索)
套用上述案例
在0-25之间,
low:0, mid:12, high:25
1212=144>25
因此, 25的平方差会在a区内
在0和12之间,
low:0, mid:6: high:12
66=36>25,
因此, 25的平方差会在a区内
在0和6之间,
low:0, mid:3: high:6
33=9<25,
因此, 25的平方差会在b区内
在3和6之间,
low:3, mid:4: high:6
44=16<25,
因此, 25的平方差会在b区内,
省略最后一步, 最终结果为5
1 | private int sqrt(int n) { |