2、以下算法是某个重要算法的一个版本,阅读后请求出该算法的时间效率,同时分析该算法有哪些重要缺陷,该如何弥补。 算法 GE(A[0..n-1,0..n-1]) for iß0 to n-2 do for jßi+1 to n-1 do for kßn downto i do A[j,k]ßA[j,k]-A[I,k]*A[j,i]/A[I,i]

2、以下算法是某个重要算法的一个版本,阅读后请求出该算法的时间效率,同时分析该算法有哪些重要缺陷,该如何弥补。 算法 GE(A[0..n-1,0..n-1]) for iß0 to n-2 do for jßi+1 to n-1 do for kßn downto i do A[j,k]ßA[j,k]-A[I,k]*A[j,i]/A[I,i]


参考答案和解析
有穷性

相关考题:

●已知有二维数组A[0..n-1][0..n-1],其中当i+j=n时,A[i][j]≠0,现在要将A数组压缩存储到一维数组T[0..m],其中mn。数组T的第一个元素T[0]=A[1][n-1] T[1]=A[2][n-2],……,依次类推,那么放入A[i][j](i+j=n)的元素是 (37) 。(37) A.T[i+j]B.T[i*n+j]C.T[i]D.T[i-1]

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

阅读下列程序说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。【说明】程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列,并将排序结果显示出来。【程序】define N 10main(){void (1);int i,a[N];for(i=0;i<10,i++) /*输入*/scanf(“%d”,a[i]);(2);for(i=0;i<N,i++) /*输出*/printf(“%3d”,a[i]);}void selectSon(int x[],int n){int i,j,k,t;for(int i=0; (3);i++){k=i;for(j=i+1;j<n;j++)if (4) k=j;if (5){t=x[i];x[i]=x[k];x[k] =t;}}}

已知有一维数组A[0...m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系______可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。A.i=k/n,j=k%mB.i=k/m,j=k%mC.i=k/n,j=k%nD.i=k/m,j=k%n

下面程序段的执行结果为( )。 int i=3,j=0,k=0; for(;i>0;--i) { ++k; do { ++j; if (i!=j) break; ++k; }while(j<5); } printf("i=%d j=%d k=%d\n",i,j,k);A.i=0 j=4 k=12B.i=0 j=5 k=5C.i=0 j=4 k=4D.i=0 j=3 k=3

下面算法是实现对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)

有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i 有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。A.0B.1C.2D.3

算法的主运算如下,其中i的初值为1,s的初值为0,“←”为赋值号。 while i<n do { for j←1 to n do s←s+a[i,j] i←i*2; 则该算法的时间复杂度为 ( )A.O(2n)B.O(n+log2n)C.O(nlog2n)D.O(n2)

有以下程序: include main ( ){int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k;for(i =0;i 有以下程序: #include <stdio. h> main ( ) { int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k; for(i =0;i<3;i ++ ) for (j =2;j> = i;j — ) if( x[j + 1 ] > x[j] ) { k = x[j] ;x[j] = x[j + 1 ] ;x[j + 1 ] = k; } for (i =0;i<3;i++) for(j =4;j <7-i;j ++) if(x[j] >x[j+1]){ k=x[j];x[j] =x[j+1];x[j+1] =k;} for (i=0;i<8;i ++) printf("%d" ,x[i]); prinff("\n" );}程序运行后的输出结果是( )。A.75310246B.1234567C.76310462D.13570246

有如下程序: SET TALK OFF DIMENSION K(2,3) I=1 D0 WHILE I=2 J=1 DO WHILE J=3 K(1,J)-I*J ??K(I,J) ??” ” J=J/1 ENDDO ? I=I+1 ENDDO RETURN 运行此程序的结果是( )。A.1 2 3 4 5 6B.1 2 3 2C.1 2 3 1 2 3D.1 2 3 1 4 9

有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i; 有以下程序main( ){ int x[ ]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for (j=2;j>=i;j--)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<3;i++)if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<8;i++) printf("%d",x[i]);printf("\n");}程序运行后的输出结果是:A.75310246B.1234567C.76310462D.13570246

分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=O; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }A.-2B.-1C.0D.-3

请读程序: include main( ) { int n[2],i,j,k; { for(i=0,i 请读程序: # include<srdio.h> main( ) { int n[2],i,j,k; { for(i=0,i<2;i + + )n[i]=0; k=2; for(i=0;i<k;i+ +) {for(j=0;j<k;j+ +)n[j]=n[i]+l; print{("%d\n",n[k]); } 上面程序片段输出结果是 ( )A.不确定的值B.3C.23D.1

下列程序的功能是:输入l0个整数。‘Private sub Command2_Click Dim i,j,k,temp,arr(11)As Integer Dimresult As String For k=1T0 10 arr(k)=Val(InputBox( “请输入第”k”个数:”,”数据输入窗口”)) Next k i=1 J=10 Do Temp=arr(i) arr(i)=arr(j) arr(j)=tempi=i+1 j=__________LoopWhileresule=””For k=1 To 10 result=resultarr(k)Chr(13)Nextk MsgBoxresult End Sub 横线处应填写的内容是( )。A.J-i ijB.j+1 ijC.j+1 ijD.J-1 ij

当执行以下程序后,i的值是5,j的值是4,k的值是【 】。int a, b, c, d, i, j, k;a=10; b=c=d=5; i=j=k=0;for(;a>b; ++b) i++;while(a>++c) j++;do {k++;}while(a>d++);

● 现要对n个实数(仅包含正实数和负实数)组成的数组A进行重新排列,使得其中所有的负实数都位于正实数之前。求解该问题的算法的伪代码如下所示,则该算法的时间和空间更杂度分别为(65)。i=0;j=n-1;while ij dowhile A[i]0 doi= i+1;while A[j]0 doj =j-l;if ij do交换A[i]和A[j];(65)

已知有一维数组A(0..m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系(4)可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。A.i=k/n,j=k%mB.i=k/m,j=K%mC.i=k/n,j=k%nD.i=k/m,j=k%n

已知有二维数组A[0..n-1][0..n-1],其中当i+j=n时,A[i][j]≠0,现在要将A数组压缩存储到一维数组T[0..m],其中m>n。数组T的第一个元素T[0]=A[1][n-1] T[1]=A[2][n-2],……,依次类推,那么放入A[i][j](i+j=n)的元素是(37)。A.T[i+j]B.T[i*n+j]C.T[i]D.T[i-1]

以下选项中循环结构合法的是( )。A.while (int i<7) { i+ + System.out.println("i is" + i): }B.int j:3; while (j) { System.out.println("j is"+j); }C.int j=O; for (int k=0; j + k!=10; j + +, k+ +) { System.out.println("j is"+j +,"k is"+ k): }D.int i=0: do{ {System.out.println("j is"+ j+ +); if (j==3){continue loop;} }while(j<10);

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i=i;j--)if(x[j+ 有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。A.75310246B.1234567C.76310462D.13570246

阅读FORTRAN程序:READC*,*)I,J,K DO 10 N=l,2 I=I+J+K J=I+K+J K=I+J+K 10 CONTINUEWRITE(*,20)I,J,K 20 FORMAT(2X,315)END键盘输入1,0,0则程序运行后的输出结果是:A. 4 7 13B.2 3 4C. 1 1 2D. 6 9 15

已知有一维数组A[0.m×n-1],若要对应为m行n列的矩阵,则下面的对应关系(),可将元素A[k](O≤<k≤<m×n)表示成矩阵的第i行、第j列的元素(0≤i≤m,0匀≤n)。 A. i=k/n,j=k%mB.i=k/m,j=k%mC.i=k/n,j=k%nD.i=k/m,j=k%n

下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]_c[i][j]+a[i][k]×b[k][j];A.O(m×n×t)B.O(m+n+t)C.O(m×t+n)D.O(m+n×t)

设顺序表共有n个元素,用数组elem存储,实现在第i个元素之前插入一个元素e的操作,其主要语句为()。A、FOR j=n DOWNTO i DO elem[j]=elem[j+1]; elem[i]=e;B、FOR j=i TO n DO elem[j]=elem[j+1]; elem[i]=e;C、FOR j=i TO n DO elem[j+1]=elem[j]; elem[i]=e;D、FOR j=n DOWNTO i DO elem[j+1]=elem[j]; elem[i]=e;

假设线性表采用顺序存储结构,表中元素值为整型。阅读算法f2,设顺序表L=(3,7,3,2,1,1,8,7,3),写出执行算法f2后的线性表L的数据元素,并描述该算法的功能。voidf2(SeqList*L){inti,j,k;k=0;for(i=0;ilength;i++){for(j=0;jdata[i]!=L-data[j];j++);if(j==k){if(k!=i)L-data[k]=L-data[i];k++;}}L-length=k;}

在下面冒泡排序算法中填入适当内容,以使该算法在发现有序时能及时停止。 bubble(R) Rectype R[n]; {int i,j,exchang; Rectype temp; i=1; do {exchang=False; for(j=n;j=¬¬i+1 ;j- -) if(R[j]

单选题设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。for(i=n-1;i=0;i--)for(j=0;jAn2BO(nlgn)CO(n)DO(n2)

填空题在下面冒泡排序算法中填入适当内容,以使该算法在发现有序时能及时停止。 bubble(R) Rectype R[n]; {int i,j,exchang; Rectype temp; i=1; do {exchang=False; for(j=n;j=¬¬i+1 ;j- -) if(R[j]