[英]O(N) lookups but O(log(N)) comparisons when using upper_bound on a sorted list
list<Person> lp;
...
lp.sort(PersonNameLess());
Person newPerson;
...
lp.insert(upper_bound(lp.begin(), lp.end(),
newPerson, PersonNameLess()), newPerson);
在有效的c ++ 3rd Edition,第198页,项目45中,其内容如下:
查找需要线性时间,但只执行对数比较
问题: 为什么只执行对数比较?
为什么只执行对数比较?
由于列表已排序,并且upper_bound会执行二进制搜索 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.