微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么考虑二进制搜索运行时间复杂度为log2N

如何解决为什么考虑二进制搜索运行时间复杂度为log2N

| 有人可以向我解释“二进制”搜索时,我们说运行时间复杂度是O(log n)吗?我在Google中搜索了以下内容,   \“可以将搜索空间减半的次数与log2 n \”相同。 我知道在数据结构中找到搜索关键字之前我们会做一半,但是为什么我们必须将其视为log2 n?我知道ex是指数增长,因此log2 n是二进制衰减。但是我无法根据对数定义的理解来解释二进制搜索。 谢谢     

解决方法

        这样想: 如果您负担得起m次的一半(即,您负担得起与m成正比的时间),那么您可以负担多少个数组? 显然大小为2m的数组,对不对? 因此,如果您可以搜索大小为n = 2m的数组,则花费的时间与m成正比,并且将m求解为n看起来像这样: n = 2m log2(n)= log2(2m) log2(n)=米 换句话说,对大小为n = 2m的数组执行二进制搜索所花费的时间与m成正比,或者与log2(n)成正比。     ,        二进制搜索:- 让我们以一个例子来解决这个问题。 假设我们吃苹果,每天一半的苹果烂了。然后几天后,苹果计数将为“ 1”。 第一天n个苹果:a a a ....(总计n) 第二天:a a a..a(总计n / 2) 第三天:a a a .. a(total n /(2 ^ 2)); 所以..............   让我们假设k天后剩下的苹果将是1   即n /(2 ^ k)应该至少变为1 n /(2 ^ k)= 1;   2 ^ k = n;   将日志应用于两侧的基数2 k = log n; 以相同的方式在二进制搜索中 首先我们剩下n个元素   然后n / 2   然后n / 4   然后n / 8   依此类推   最后我们只剩下一个   所以时间复杂度是log n     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。