更多“KMP算法时间代价为O(n)。”相关问题
  • 第1题:

    假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()

    A.O(logn)

    B.O(n*logn)

    C.O(n)

    D.O(n^2)


    正确答案:B

  • 第2题:

    A算法的时间复杂度为O(n^3),B算法的时间复杂度为O(2n),则说明()。

    A对于任何的数据量,A算法的时间开销都比B算法小

    B随着问题规模n的增大,A算法比B算法有效

    C随着问题规模n的增大,B算法比A算法有效

    D对于任何数据量,B算法的时间开销都比A算法小


    参考答案:B

  • 第3题:

    设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n>O)及T(0)=1,则该算法的时间复杂度为(65)。

    A.O(lgn)

    B.O (nlgn)

    C.O(n)

    D.O(n2)


    正确答案:D
    解析:本题考查算法设计基础知识。根据题目中给出的递推关系:T(n)=T(n-1)+n=T(n-2)+n-1+n=…=T(0)+1+2+…+n-1+n=1+n(n+1)/2

  • 第4题:

    设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。

    A.n2

    B.O(nlgn)

    C.O(n)

    D.O(n2)


    正确答案:D

  • 第5题:

    某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为 (请作答此空) ,若问题的规模增加了16倍,则运行时间增加 ( ) 倍。

    A.O(n)
    B.O(nlgn)
    C.O(n2)
    D.O(n2lgn)

    答案:C
    解析:
    对于递归式,假设T(1)=1,则:
    T(n)=T(n-1)+n
    =T(n-2)+n-1+n
    =T(n-3)+n-2+n-1+n
    =1+2+…+n-1+n
    =n(n+1)/2
    可见,时间复杂度为O(n2)。若问题的规模增加了16倍,则运行时间增加了162=256倍。

  • 第6题:

    设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n>O)及T(0)=1,则该算法的时间复杂度为( )。

    A.O(lgn)
    B.O(nlgn)
    C.O(n)
    D.O(n^2)

    答案:D
    解析:
    本题考查算法设计基础知识。根据题目中给出的递推关系:T(n)=T(n-1)+n=T(n-2)+n-1+n=…=T(0)+1+2+…+n-1+n=1+n(n+1)/2

  • 第7题:

    数据结构与算法里,关于汉诺塔算法的时间复杂度说的正确的是()

    • A、O(2*n)
    • B、O(2^n)
    • C、O(n*n)
    • D、O(n*n*n)

    正确答案:B

  • 第8题:

    直接插入排序算法的时间复杂度为()。

    • A、O(n)
    • B、O(n2
    • C、O(log2n)
    • D、O(1)

    正确答案:B

  • 第9题:

    设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。for(i=n-1;i>=0;i--)for(j=0;j

    • A、n2
    • B、O(nlgn)
    • C、O(n)
    • D、O(n2)

    正确答案:D

  • 第10题:

    设串长为n,模式串长为m,则KMP算法所需的附加空间为()。

    • A、O(m)
    • B、O(n)
    • C、O(m*n)
    • D、O(nlog2m)

    正确答案:A

  • 第11题:

    填空题
    排序的平均时间复杂度为O(n•logn)的算法是(),为O(n•n)的算法是()

    正确答案: 快速排序、二路归并排序、堆排序,直接插入排序、简单选择排序、起泡排序
    解析: 暂无解析

  • 第12题:

    判断题
    KMP算法时间代价为O(n)。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第13题:

    某算法的时间代价递推关系为T(n)=2T(n/2)+n,T(1)=1,则该算法的时间复杂度为______。

    A.O(n)

    B.

    C.O(n2)

    D.O(1)


    正确答案:B
    解析:由时间代价严格推出时间复杂度比较复杂,对于这种题,可用特例验证,不过需要注意的是特例不能取太少,至少n取到5,这样规律基本就可以确定了。
      T(1)=1
      T(2)=2T(1)+2=4
      T(3)=2T(1)+3=5
      T(4)=2T(2)+4=12
      T(5)=2T(2)+5=13
      很容易排除D选项,其递增速率介于O(n)和O(nsup>2</sup>)之间,故选B。

  • 第14题:

    ● 若某算法在问题规模为 n 时,其基本操作的重复次数可由下式表示,则该算法的时间复杂度为 (64) 。

    (64)A. O(n) B. O(n2) C. O(logn) D. O(nlogn)


    正确答案:B

  • 第15题:

    下面算法的时间复杂度为()

    A.O(1)

    B.O(n)

    C.O(n*n)

    D.O(n!)


    正确答案:B

  • 第16题:

    设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n表示,则该算法的时间复杂度为(1)。

    A.O(lgn)

    B.O(nlgn)

    C.O(n)

    D.O(n2)


    正确答案:B
    解析:运用数学递推公式,可以推算出数量级O(nlgn)。

  • 第17题:

    在用邻接表表示图时,拓扑排序算法时间复杂度为()。

    A.O(n)
    B.O(n+e)
    C.On×n
    D.O(n×n×n)

    答案:B
    解析:
    拓扑排序中每个顶点都需要出入栈(当用邻接表表示图时的执行次数为n),然后把入度减1(当用邻接表表示图时的执行次数为e),所以拓扑排序的时间复杂度为O(n+e)。

  • 第18题:

    某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为(62),若问题的规模增加了16倍,则运行时间增加(63)倍。

    A.O(n)
    B.O(nlgn)
    C.O(n2)
    D.O(n2lgn)

    答案:C
    解析:
    对于递归式,假设T(1)=1,则:
    T(n)=T(n-1)+n
    =T(n-2)+n-1+n
    =T(n-3)+n-2+n-1+n
    =1+2+…+n-1+n
    =n(n+1)/2
    可见,时间复杂度为O(n2)。若问题的规模增加了16倍,则运行时间增加了162=256倍。

  • 第19题:

    排序的平均时间复杂度为O(n•logn)的算法是(),为O(n•n)的算法是()


    正确答案:快速排序、二路归并排序、堆排序;直接插入排序、简单选择排序、起泡排序

  • 第20题:

    朴素模式匹配算法,算法运行时间为O(m*n)。


    正确答案:正确

  • 第21题:

    背包问题的贪心算法所需的计算时间为()

    • A、O(n2n
    • B、O(nlogn)
    • C、O(2n
    • D、O(n)

    正确答案:B

  • 第22题:

    快速排序算法的平均时间复杂度为()。

    • A、O(n)
    • B、O(n2)
    • C、O(nlog2n)
    • D、O(log2n!)

    正确答案:C

  • 第23题:

    单选题
    设串长为n,模式串长为m,则KMP算法所需的附加空间为()。
    A

    O(m)

    B

    O(n)

    C

    O(m*n)

    D

    O(nlog2m)


    正确答案: C
    解析: KMP算法时间复杂度为O(m+n),空间复杂度是O(m).因为KMP算法设计到next数组的存储,且next数组是基于模式串长度计算的。
    BF算法(普通匹配算法)时间复杂度为O(m*n);空间复杂度为O(1).