牛客------Two

1、在这里插入图片描述

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
2、在这里插入图片描述
不能讨论绝对查找速度,因为不知道需要查找元素的位置
只能讨论平均的时间复杂度
3、在这里插入图片描述
二分查找必须是顺序存储的有序线性表
4、在这里插入图片描述
不同的起点,不同的存储结构都会影响无向图的深度遍历

5、在这里插入图片描述

第一次:比较:(0+16)//2 = 8,比较a8
第二次:比较: (0+7) // 2 = 3 或者 (9+16) // 2=12

6、
在这里插入图片描述

关于二分查找的最劣情况的计算公式(log2n)+1,其中(log2n)向下取整

7、在这里插入图片描述

由题目已知元素序号(即下标)范围为1~12。查找1次成功的结点为:6。查找2次成功的结点为:3,9。查找3次成功的结点为:1,4,7,11。查找4次成功的结点为:2,5,8,10,12。成功查找所有结点的总的比较次数为:1×1+2×2+3×4+4×5=37平均比较次数为37/12。因此选择B。

8、在这里插入图片描述

可以用自己的模拟栈实现

9、在这里插入图片描述

第一次查到55
第二次查到93

10、在这里插入图片描述

由题目已知元素序号(即下标)范围为1~12。查找1次成功的结点为:6。查找2次成功的结点为:3,9。查找3次成功的结点为:1,4,7,11。查找4次成功的结点为:2,5,8,10,12。成功查找所有结点的总的比较次数为:1×1+2×2+3×4+4×5=37平均比较次数为37/12。约为3.1

11、在这里插入图片描述

查找第一个数查1次
查找第二个数查2次
查找第三个数查3次
…………
查找第n个数查n次
平均次数为(1+n)/2

12、
在这里插入图片描述

与第7题相同

13、
在这里插入图片描述

先计算模式串abaabc的next数组
abaabc
011223
当匹配到i=5时,a!=c,
abaabaabacacaabaabcc
abaabc
123456789
然后 next[5]=3,移动模式串t往后3个位置,
abaabaabacacaabaabcc
xxxabaabc
12345678
i=5,j=2,继续比较

14、在这里插入图片描述

500+250+125+63+31+16+8+4+2+1=1000

15、在这里插入图片描述

KMP匹配算法 时间复杂度为O(N+P)

16、在这里插入图片描述

第一次middle=6,第二次middle=9,第三次middle=10,第四次middle=11,之后由于middle=11+(12-11)/2=11,一直没有变化所以为无数次

17、在这里插入图片描述

答案:O(n)
思想类似于两端向中间扫描
1、设定两个指针P1、P2,分别指向数组开始和结尾,即P1指向最小值,P2指向最大值;
2、计算 *P1+*P2 的值为 SUM,与 sum 比较,记录它们的差值 DIF 和 SUM,若 SUM<sum,P1++,若SUM>sum,P2–;
3、重复以上过程直到DIF最小

18、在这里插入图片描述

对于TRIE树(字典树)来说,能在O(len)的时间内查出该单词是否存在,而且空间占用少。

19、在这里插入图片描述

这里是引用

20、在这里插入图片描述

与二分法比较 斐波那契查找的平均性能比折半查找好 但最坏的情况下比折半性能差 还有一个优点,分割时只需要进行加减运算

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值