牛客:专项练习 - 排序与查找 - 02

注:部分题目解析来自该题目的评论区

 

第1题

京东商城plus会员的消费记录金额分别为900,512,613,700,810,若采用选择排序算法对其进行从小到大的排序,第三趟排序结果为:(C)

A 900512613700810
B 512900613700810
C 512613700900810
D 512613700810900

1.  512 900 613 700 810

2.  512 613 900 700 810 

3.  512 613 700 900 810

第2题

下列关于排序算法中的说法中,错误的有()D

A 在待排序的元素序列基本有序的前提下,效率最高的排序方法是插入排序
B 堆排序的时间复杂度为O(nlogn)
C 关键字比较的次数与激励的初始排列次序无关的是冒泡排序
D 快速排序是一种稳定的排序算法
  • A:如果数组有序的话,插排只要O(n)
  • B:堆排序的时间复杂度为O(nlogn)
  • C:冒泡排序,每一趟都是两两相邻比较,(但是如果一趟中没有发生数据交换,可以结束循环),C不确定吧
  • D:稳定排序:冒泡,插排,归并

第3题

在下列排序算法中,哪一个算法的时间复杂度与初始排序无关( D    )。

A 直接插入排序
B 气泡排序
C 快速排序
D 直接选择排序

堆归选基与初始序列无关 快选希堆排序不稳定

第4题

对给定的关键字序列110, 119, 007, 911, 114, 120, 122 进行基数排序, 则第 2 趟分配收集后得到的关键字序列是( C )。

A 007, 110, 119, 114, 911, 120, 122
B 007, 110, 119, 114, 911, 122, 120
C 007, 110, 911, 114, 119, 120, 122
D 110, 120, 911, 122, 114, 007, 119

1.  110 120 911 122 114 007 119

2.  007 110 911 114 119 120 122 

3.  007 110 114 119 120 122 911

第5题

对于关键字序列(16,10,20,12,18,7,14,13,5,19),不可能构成其二叉排序树中一条查找路径的序列是(   C  )

A 16,10,7,5
B 16,20,18,19
C 16,10,7,12,14C
D 16,10,12,14

牛客:专项练习 - 排序与查找 - 02_第1张图片

第6题

以下哪种排序算法需要开辟额外的存储空间(B)

A 选择排序
B 归并排序
C 快速排序
D 堆排序

概念: 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并 。

特点: 归并排序的最好、最坏和平均时间复杂度都是 O(nlogn) ,而空间复杂度是 O(n), 比较次数介于(nlogn)/2和(nlogn)-n+1,赋值操作的次数是(2nlogn)。

点评: 归并排序算法比较占用内存,但却是效率高且稳定的排序算法。

第7题

假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为多少次?C

A nn的二次方
B n的二次方/2
C n(n-1)/2
D n(n+1)/2

第8题

在下列排序算法中,在待排序的数据表已经为有序时,花费时间反而最多的是(A)。

A 快速排序
B 希尔排序
C 冒泡排序
D 堆排序

快排最差: (n+1)*n/2-1

第9题

将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?A

A O(N * M * logN)
B O(N*M)
C O(N)
D O(M)

1. 在每一个链表中取出第一个值,然后把它们放在一个大小为N的数组里,然后把这个数组当成heap建成小(大)根堆。此步骤的时间复杂度为O(N)

2. 取出堆中的最小值(也是数组的第一个值), 然后把该最小值所处的链表的下一个值放在数组的第一个位置。如果链表中有一个已经为空(元素已经都被取出),则改变heap的大小。此步骤的时间复杂度为O(lg N).

3. 不断的重复步骤二,直到所有的链表都为空。

建堆只建一次,复杂度为O(N);调整堆MN-1次,复杂度为(MN-1)*O(lg N)。所以为O(MN*lg N)

 

第10题

在下列表述中,(ABD)是错误的

A 含有一个或多个空格字符的串称为空串
B 对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
C 选择排序算法是不稳定的
D 平衡二叉树的左右子树的结点数之差的绝对值不超过1

A选项:长度为0 的串为空串,即为“” 。由多个空格字符构成的字符串称为空格串

B选项:如果权值最小的n-1条边构成了环的话,就不能构成最小生成树

D选项:平衡二叉树的左右子树高度之差的绝对值不超过1.

C选项:选择排序包括直接选择排序和堆排序,都是不稳定的算法

你可能感兴趣的:(专项练习)