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

在数组中搜索前一个元素的每个元素+1或

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

在数组中搜索前一个元素的每个元素+1或

我的算法是这样的:

  1. p = 0
  2. 如果(A [p] == x)则idx = p并且算法完成,否则转到下一步
  3. 设置p + = | xA [p] |
  4. 转到2。

说A [p]> x。然后,由于A项增加或减少1,因此idx至少可以确定与p的索引(A[p]-x)。A[p]<x的原理相同。

int p=0, idx=-1;while (p<len && p>=0)   if (A[p]==x)       idx = p;   else       p+= abs(x-A[p]);

时间复杂度:最坏的情况是O(n)。我希望平均情况比O(n)好(我认为是O(logn),但不确定)。运行时间:在所有情况下,绝对比线性搜索好。



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

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

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