Day12刷题总结

选择题

  • 一个排序算法的时间复杂度与(B)有关
    A.排序算法的稳定性
    B.所需比较关键字的次数
    C.所采用的存储结构
    D.所需辅助存储空间的大小
  • 快速排序和归并排序在最坏情况下的比较次数都是O(nlog2 n)(B)
    A.对
    B.错
    解析:
    归并排序的最坏情况,最好情况和平均情况都是O(nlogn); 快速排序的最坏情况是O(n^2),最好的情况和平均情况是O(nlogn)
  • 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较____C____个元素结点。
    A.n/2
    B.n
    C.(n+1)/2
    D.(n-1)/2
  • 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( A )
    A.(N+1)/2
    B.N/2
    C.N
    D.[(1+N)*N ]/2
    解析;
    第一个数的比较次数为1,第二个数的比较次数为2。。。以此类推第N个数的比较次数为N,所以总的比较次数为1+2+…+N=N(N+1)/2,平均比较次数为(N+1)/2,也即平均查找长度。
  • 采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中,正确的是(D)。
    A.递归次数与初始数据的排列次序无关
    B.每次划分后,先处理较长的分区可以减少递归次数
    C.每次划分后,先处理较短的分区可以减少递归次数
    D.递归次数与每次划分后得到的分区的处理顺序无关
    解析:
    快递排序的递归次数与元素的初始排列有关。如果每一次划分后分区比较平衡,则递归次数少;如果划分后分区不平衡,则递归次数多。但快速排序的递归次数与分区处理顺序无关,即先处理较长的分区或先处理较短的分区都不影响递归次数。
    此外,可以形象地把快速排序的递归调用过程用一个二叉树描述,先处理较长或较短分区,可以想象为交换某一递归结点处的左右子树,这并不会影响树中的分支数。
  • 关于依赖注入,下列选项中说法错误的是(B)
    A.依赖注入能够独立开发各组件,然后根据组件间关系进行组装
    B.依赖注入使组件之间相互依赖,相互制约
    C.依赖注入提供使用接口编程
    D.依赖注入指对象在使用时动态注入
    解析:
    依赖注入和控制反转是同一概念:
    依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。
  • 在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动 (A) 个元素。
    A.n-i
    B.n-i+l
    C.n-i-1
    D.i
  • @SuppressWarnings(“deprecation”)的功能是什么?(A)
    A.屏蔽不赞同使用的类和方法的警告
    B.屏蔽在强制类型转换的时候编译器给出的警告
    C.关闭所有警告信息
    D.当在可序列化的类上缺少serialVersionUID定义的警告
    解析:
    本题考查注解编程,对java三大注解是否了解:
    @SuppressWarnings这是java三大注解之一,主要功能是屏蔽相应的警告。
    里面的deprecation修饰符则是对java中已经过时或者废弃方法的警告。
    @SuppressWarnings(“deprecation”)的功能是屏蔽不赞同(就是过时废弃的意思)使用的类和方法的警告。
    Java自带的三大注解:@Override @Deprecated @SuppressWarnings()
  • 下列关于堆和栈的区别描述错误的有?(A)
    A.申请方式的不同,堆是系统自动分配,栈是自己申请
    B.栈的大小是固定的,堆的大小受限于系统中有效的虚拟内存
    C.栈的空间由系统决定何时释放,堆需要自己决定何时去释放
    D.堆的使用容易产生碎片,但是用起来最方便
  • 有一个小白程序员,写了一个只能对5个数字进行排序的函数。现在有25个不重复的数字,请问小白同学最少调几次该函数,可以找出其中最大的三个数?(C)
    A.5
    B.6
    C.7
    D.8
    解析:
    1>25人分5组调用,分别排序,调用5次
    2>取出5组中的最大数,排序,调用1次
    3>将第2步排序中最大的三组取出,假设为A,B,C,从第二步已知A[1]>B[1]>C[1],不需要再比较,选A[2]、A[3]、B[1]、B[2]、C[1]比较。不需要比较B[3]是因为A[1]已经最大了,若剩下两个数在B中,A[1]占了一个数,只剩两个位置,C[1]同理,轮到C[1]的时候,前面A[1]>B[1]已经占了两个位置。调用1次
    总共 5+1+1=7次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值