下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sortA.O(n2)B.O(n3)C.O(n4)D.O(n)

题目

下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sort

A.O(n2)

B.O(n3)

C.O(n4)

D.O(n)


相似考题
更多“下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度 ”相关问题
  • 第1题:

    求解两个长度为n的序列X和Y的一个最长公共子序列(如序列ABCBDAB和BDCABA的一个最长公共子序列为BCBA)可以采用多种计算方法。如可以采用蛮力法,对X的每一个子序列,判断其是否也是Y的子序列,最后求出最长的即可,该方法的时间复杂度为(请作答此空)。经分析发现该问题具有最优子结构,可以定义序列长度分别为i和j的两个序列X和Y的最长公共子序列的长度为c[i,j],如下式所示。



    采用自底向上的方法实现该算法,则时间复杂度为( )

    A.O(n^2)
    B.O(n^21gn)
    C.O(n^3)
    D.O(n2^n)

    答案:D
    解析:
    蛮力法,对X的每一个子序列,判断是否也是Y的子序列,其中,长度为n的序列X共有2^n个子序列,判断其是否是Y的子序列时间是n,因此是n*2^n;采用动态规划法自底向上实现时,根据递归公式,实际是关于i和j的两重循环,因此时间复杂度是n^2.

  • 第2题:

    不受待排序初始序列的影响,时间复杂度为O(n2)的排序算法是_____,在排序算法的最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是_____。


    简单选择排序;直接插入排序;最小的元素在最后时

  • 第3题:

    令n为问题规模,其中解决本问题的三个算法称为A,B,C,他们需要的总运算次数分别是: A: 96+108n+24n^2+12n^3 B: 16n+48n^3 C: 10080+168n+7n^2*log(n) 三个算法的时间复杂度的大O级别中,以下表述正确的有:

    A.A算法和B算法的时间复杂度相同

    B.B算法比A算法的时间复杂度更大

    C.C算法的时间复杂度最大

    D.C算法的时间复杂度最小

    E.A算法比B算法的时间复杂度更大


    问题空间

  • 第4题:

    2、不受待排序初始序列的影响,时间复杂度为O(n2)的排序算法是_____,在排序算法的最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是_____。


    正确

  • 第5题:

    简单选择排序算法的时间复杂度是O(n),不受数据初始序列影响。()


    O(n 2 )