刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

给定包含n 个正整数的数组 A 和正整数 x,要判断数组 A 中是否存在两个元素之和等于 x,先用插入排序算法对数组 A 进行排序,再用以下过程 P 来判断是否存在两个元素之和等于 x。

low=1;

high=n;

while(high>low)

    if A[low]+A[high]=x return true;

    else if A[low]+A[high]>x low++;

    else high--;

return false;

则过程 P 的时间复杂度为( ),整个算法的时间复杂度为(请作答此空)。

A
O(n)
B
O(nlgn)
C
O(n^2)
D
O(n^2lgn)
使用微信搜索喵呜刷题,轻松应对考试!

答案:

C

解析:

第一空:过程P中,通过while循环遍历数组元素,判断是否存在两个元素之和等于x,因此时间复杂度为O(n)。
第二空:题目中先用插入排序算法对数组A进行排序,插入排序的时间复杂度为O(n^2)。因此,整个算法的时间复杂度为O(n^2)。

创作类型:
原创

本文链接:给定包含n 个正整数的数组 A 和正整数 x,要判断数组 A 中是否存在两个元素之和等于 x,先用插

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share