|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
1,对;2,错。lookup采用二分法查询,必须要升序:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。可看我附件案例,测试你第2个猜想。
- lookup在查找时,使用的是二分查找,就是对列表元素分成两组(偶数等分,奇数分成(n-1)/2、(n+1)/2两组),之后获取中间的元素进行比较:
- 如果小于中间元素,则将查找范围设置为中间元素之前的组,继续使用二分查找,依此循环下去;
- 如果大于中间元素,则将查找范围设置为中间元素之后的组,继续使用二分查找,依此循环下去;
- 如果与中间元素相同,结果就是中间值。
- 因此,如果没有实现对这个列表进行升序排序,这个中间元素获取就会错误,然后选组错误,最后导致查找有误。
- 资料来源:知乎 https://zhuanlan.zhihu.com/p/37531415,网站中的第一个评论
复制代码
学习资料:https://club.excelhome.net/thread-161460-1-1.html |
评分
-
1
查看全部评分
-
|