正确答案: D

快速排序为n(n-1)/2

题目:对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是

解析:插入排序是指将无序子序列中的一个或几个记录插入到有序序列中,从而增加记录的有序子序列的长度。在最坏的情况下,当插入第一个元素时,需要比较的次数为0,插入第二个元素时,需要比较一次,插入第n个元素时,需要比较n-1次。那么直到将n个元素都插入序列中,需要比较次数的总和为0+1+2+…+n-1。因此,在最坏情况下,插入排序需要比较的次数为n(n-1)/2。

查看原题 点击获取本科目所有试题

举一反三的答案和解析:

  • [单选题]数据的存储结构是指( )。
  • 数据的逻辑结构在计算机中的表示


  • [单选题]以下选项中可作为C语言合法常量的是( )。
  • -80

  • 解析:解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。

  • [单选题]Applet的运行过程要经历4个步骤,其中不是运行步骤的是( )。A. 浏览器加载指定URL中HTML文件SXB
  • 浏览器显示HTML文件

  • 解析:pplet的运行过程要经历4个步骤:①浏览器加载指定URL中的HTML文件;②浏览器解析HTML文件;③浏览器加载HTML文件中指定的Applet类;④浏览器中的Java运行环境运行该Applet;由此可知B选项中内容不是其步骤之-。

  • [单选题]有以下程序: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;i3;i++) for(j=2;i>=i;j--) if( x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i3;i++) for(j=4;j7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

  • 7.53102e+007

  • 解析:解析:主函数中定义了一个整型数组x,并初始化。接着执行了一个二重for循环,该二重循环的作用是将数组的前4个元素按从大到小排序,接着用了一个二重循环(也是冒泡算法)将数组的后4个元素按从小到大的顺序排序,故最后依次输出数组的元素值为75310246,所以,4个选项中选项A符合题意。

  • [单选题]有以下程序 int a=2; int f(int *a) {return (*a)++; } main ( ) int s=0; { int a=5; s+=f (&a); } s+=f (&a); printf ( "%d\n",s ); 执行后输出结果是
  • 7

  • 解析:解析:本题考核的知识点是局部变量和全局变量的区别。若在函数中定义与全局变量名字相同局部变量,则全局变量在该函数中将不起作用。本题中定义了一个全局变量a和局部变量a在主函数中定义一个整型变量s并赋初值为0,接着定义了一个局部变量a并赋值为5,由于该局部变量的和全局变量a同名,故全局变量在复合语句中将不起作用,然后调用函数f(&a)(该函数的作用是返回存储变量a的空间中的值,并让该值加1,分析程序可知返回值为5,并让a值加1变为6),并将返回值加到s中.此时s的值为5,然后执行该复合语句外的其他语句,同样调用函数f(&a),但传递的参数是全局变量a,故其返回值为2,加到。中后s的值变为7,故最后输出的s的值为7,所以,4个选项中选项C符合题意。

  • [单选题]数据库系统的构成为:数据库集合、计算机硬件系统、数据库管理员和用户与______。
  • 数据库管理系统及相关软件

  • 解析:解析:数据库系统由5大部分组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。

  • 推荐下载科目: 计算机三级 计算机四级 思科认证 Linux认证 华为认证 软考高级 职称计算机 计算机操作员初级 计算机操作员高级 计算机辅助设计
    @2019-2026 不凡考网 www.zhukaozhuanjia.com 蜀ICP备20012290号-2