栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

确定排序数组中的任何数字是否为x的倍数的最快算法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

确定排序数组中的任何数字是否为x的倍数的最快算法是什么?

这似乎在很大程度上取决于大小

x
和内部元件的数量
A
,以及候选倍数的特别的数量
x
之内
A

对内的特定数字进行二进制搜索

A
需要O(log(n))时间(n是中的元素数
A
),因此,如果的第一个元素和最后一个元素之间
k
可能存在倍数,则需要检查所有
x
元素。如果该数字小于,则可以使用此算法,否则只需进行线性搜索即可。
A``O(k* log(N))``n

(此外,上述算法可能还有一些小的优化。例如,一旦检查

x*i
(但未找到),则可以使用搜索时本
x*i
应位于的位置作为下限,
x*(i+1)
而不是使用数组。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号