对n个元素值分别为-1、0或1的整型数组A进行升序排序的算法描述如下:统计A中-1、0和1的个数,设分别为n1、n2和n3,然后将A中的前n1个元素赋值为-1,第n1+1到n1+n2个元素赋值为0,最后n3个元素赋值为1。该算法的时间复杂度和空间复杂度分别为()。A、Θ(n)和Θ(1)B、Θ(n)和Θ(n)C、Θ(n2)和Θ(1)D、Θ(n2)和Θ(n)

对n个元素值分别为-1、0或1的整型数组A进行升序排序的算法描述如下:统计A中-1、0和1的个数,设分别为n1、n2和n3,然后将A中的前n1个元素赋值为-1,第n1+1到n1+n2个元素赋值为0,最后n3个元素赋值为1。该算法的时间复杂度和空间复杂度分别为()。

  • A、Θ(n)和Θ(1)
  • B、Θ(n)和Θ(n)
  • C、Θ(n2)和Θ(1)
  • D、Θ(n2)和Θ(n)

相关考题:

对n个元素值分别为-1、0或1的整型数组A进行升序排序的算法描述如下:统计A中-1、0和1的个数,设分别为n1、n2和n3,然后将A中的前n1个元素赋值为-1,第n1+1到n1+n2个元素赋值为0,最后n3个元素赋值为1。该算法的时间复杂度和空间复杂度分别为()。 A.(n)和(1)B.(n)和(n)C.(n2)和(1)D.(n2)和(n)

设有定义:int n1=0,n2,*p=n2,*q=n1;,以下赋值语句中与n2=n1;语句等价的是()。A)*p=*q; B)p=q;C)*p=n1; D)p=*q;

设有定义:int n1=0,n2,*p=n2,*q=n1;,下列赋值语句中与n2=n1;语句等价的是 ( )。A.*p=*q;B.p=q;C.*p=n1;D.p=*q;

在图示四个轴力N1、N2、N3和N4中,( )。:(A)N1和N2为正,N3和N4为负。(B)N1和N4为正,N2和N3为负。(C)N2和N3为正,N1和N4为负。(D)N3和N4为正,N1和N2为负

当发生窗体的单击事件时,输出的第二行为( )。 Private Sub Form_click() Dim N1 As Integer,N2 As Integer,N3 As Integer N1=1:N2=1 Print N1;N2 Do N3=N1+N2 Print N3; N1=N2:N2=N3 Loop Until N3>=5 End SubA.1 1 1B.2 3 5C.2 5 7D.2 3 4

函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的语句后,a[0]和a[1]的值分别为【 】。a[0]=1;a[1]=2;swap(a,2);

若长度为n的线性表采用顺序存储结构,在第i≤1≤i≤n+1) 个位置插入一个新元素的算法时间复杂度为(1)。A.O(0)B.O (1)C.O(n)D.O(n2)

对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分别为(62);若采用快速排序算法,则时间和空间复杂度分别为(63)。A.O(n2)和O(n)B.O(n)和O(n)C.O(n2)和O(1)D.O(n)和O(1)

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 采用归并排序对n个元素进行递增排序时,首先将n个元素的数组分成各含n/2个元素的两个子数组,然后用归并排序对两个子数组进行递归排序,最后合并两个已经排好序的子数组得到排序结果。 下面的C代码是对上述归并算法的实现,其中的常量和变量说明如下: arr:待排序数组 p,q,r:一个子数组的位置从p到q,另一个子数组的位置从q+1到r begin,end:待排序数组的起止位置 left,right:临时存放待合并的两个子数组 n1,n2:两个子数组的长度 i,j,k:循环变量 mid:临时变量 【C代码】inciudestdio.h inciudestdlib.h define MAX 65536 void merge(int arr[],int p,int q,int r) { int *left, *right; int n1,n2,i,j,k; n1=q-p+1; n2=r-q; if((left=(int*)malloc((n1+1)*sizeof(int)))=NULL) { perror(malloc error); exit(1); } if((right=(int*)malloc((n2+1)*sizeof(int)))=NULL) { perror(malloc error); exit(1); } for(i=0;in1;i++){ left[i]=arr[p+i]; } left[i]=MAX; for(i=0; in2; i++){ right[i]=arr[q+i+1] } right[i]=MAX; i=0; j=0; for(k=p; (1) ; k++) { if(left[i] right[j]) { (2) ; j++; }else { arr[k]=left[i]; i++; } } } void mergeSort(int arr[],int begin,int end){ int mid; if( (3) ){ mid=(begin+end)/2; mergeSort(arr,begin,mid); (4) ; merge(arr,begin,mid,end); } }【问题1】 根据以上说明和C代码,填充1-4。 【问题2】 根据题干说明和以上C代码,算法采用了(5)算法设计策略。 分析时间复杂度时,列出其递归式位(6),解出渐进时间复杂度为(7)(用O符号表示)。空间复杂度为(8)(用O符号表示)。 【问题3】 两个长度分别为n1和n2的已经排好序的子数组进行归并,根据上述C代码,则元素之间比较次数为(9)。

样本含量分别为n1和n2的两个小样本均数比较的t检验中,自由度等于A.n1 + n2 -2B.n1 - n2C.n1 + n2 -1D.n1 + n2E.(n1 + n2)/2

快速排序算法在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分成两个部分,前面一部分元素值小于基准元素,而后面一部分元素值大于基准元素。然后再分别对前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了(61)算法设计策略。已知确定着基准元素操作的时间复杂度为O(n),则快速排序算法的最好和最坏情况下的时间复杂度为(62)。A.O(n)和O(nlgn)B.O(n)和O(n2)C.O(nlgn)和O(nlgn)D.O(nlgn)和O(n2)

在双标准纬线等角圆锥投影中,n1、n2分别为标准纬线φ1和φ2处的纬线长度比,选项正确的是()。A:n1>1,n2<1B:n1<1,n2>1C:n1<0,n2>0D:n1=1,n2=1

设普通对称式圆锥齿轮差速器壳的转速为n0,左右两半轴的转速分别为n1、n2,则汽车转弯时有()A、n1=n2=n0B、n1=n2=2n0C、n1=n2=0.5n0D、n1+n2=2n0

设对称式锥齿轮差速器壳的转速为n0,左、右两侧半轴齿轮的转速分别为n1和n2,则有()。A、n1+n2=n0B、n1+n2=2n0C、n1+n2=1/2n0D、n1=n2=n0

在下列选项中,不正确的赋值语句是()。A、++tB、n1=(n2=(n3=0))C、k=i=jD、a=b+c=1

在下列选项中,不正确的赋值语句是()A、t/=5;B、n1=(n2=(n3=0));C、k=i= = j;D、a=b+c=1;

在对n个元素进行起泡排序的过程中,最好情况下的时间复杂度为:()A、.O(n3)B、O(n2)C、O(n)D、O(1)

在对n个元素进行直接插入排序的过程中,算法的空间复杂度为()A、O(1)B、O(log2n)C、O(n2)D、O(nlog2n)

设对称式锥齿轮差速器壳的转速为n0,左、右两侧半轴齿轮的转速分别为n1和n2,则有()A、n1+n2=n0B、n1+n2=2nC、n1+n2=1/2n0D、n1=n2=n0

设对称式锥齿轮差速器壳的转速为n0,左、右两侧半轴齿轮的转速分别为n1和n2,则有()。A、n1+n2=n0B、n1+n2=2n0C、n1=n2=n0

设有定义:intn1=0,n2,*p=n2,*q=n1;,以下赋值语句中与n2=n1;语句等价的是()A、*p=*q;B、p=q;C、*p=n1D、p=*q;

设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。A、O(n)B、O(nlog2n)C、O(1)D、O(n2)

单选题设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。AO(n)BO(nlog2n)CO(1)DO(n2)

单选题设对称式锥齿轮差速器壳的转速为n0,左、右两侧半轴齿轮的转速分别为n1和n2,则有()。An1+n2=n0Bn1+n2=2n0Cn1+n2=1/2n0Dn1=n2=n0

单选题在对n个元素进行起泡排序的过程中,最好情况下的时间复杂度为:()A.O(n3)BO(n2)CO(n)DO(1)

单选题设对称式锥齿轮差速器壳的转速为n0,左、右两侧半轴齿轮的转速分别为n1和n2,则有()An1+n2=n0Bn1+n2=2nCn1+n2=1/2n0Dn1=n2=n0

单选题设对称式锥齿轮差速器壳的转速为n0,左、右两侧半轴齿轮的转速分别为n1和n2,则有()。An1+n2=n0Bn1+n2=2n0Cn1=n2=n0