假定一个初始堆为(1, 5, 3, 9, 12, 7, 15, 10),则进行第一趟堆排序后得到的结果为()。

题目
单选题
假定一个初始堆为(1, 5, 3, 9, 12, 7, 15, 10),则进行第一趟堆排序后得到的结果为()。
A

 3, 5, 7, 9, 12, 10, 15, 1

B

 3, 5, 9, 7, 12, 10, 15, 1

C

 3, 7, 5, 9, 12, 10, 15, 1

D

 3, 5, 7, 12, 9, 10, 15, 1

参考答案和解析
正确答案: D
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若一组记录的排序码为(7,9,3,5,1,2,10),则利用堆排序的方法建立的初始堆为()

A.10,7,9,3,5,1,2

B.10,9,7,5,1,2,3

C.10,9,7,5,3,2,1

D.10,9,7,3,2,1,5


正确答案:B

第2题:

若将元素10插入到堆A=(15,13,9,5,12,8,7,4,0,6,2,1)中,调用maxHeaplnsert函数进行操作,则新插入的元素在堆A中第(9)个位置(从1开始)。


正确答案:(9)3
(9)3 解析:依照maxHeapInsert的算法,可有如下几步:
第一步:i=13 PARENT(i)=6key=10 A->int_array [PARENT(i)]=8
由于key>A->int_array[PARENT(i)]
所以符合while循环条件,执行:
A->int_array[i]=A->int_array[PARENT(i)];
i=PARENT(i);
即:

第二步:i=6 PARENT(i)=3key=10 A->int_array [PARENT (i)]=9
由于key>A->int_array[PARENT(i)]
所以符合while循环条件,执行:
A->int_array[i]=A->int_array[PARENT(i)];
i=PARENT(i);
即:

第三步:i=3 PARENT(i)=1key=10 A->int_array [PARENT(i)]=15
由于keyint_array[PARENT(i)]
所以不符合while循环条件,跳出循环。
执行:A->int_array[i]=key;
即:

所以,插入元素10的位置在第三个位置。

第3题:

已知序列{11,19,5,4,7,13,2,10}(1)试给出用归并排序法对该序列作升序排序时的每一趟的结果。(2)对上述序列用堆排序的方法建立初始堆(要求小根堆,以二叉树描述建堆过程)。


参考答案:(1) 初始 11,19,5,4,7,13,2,10
第一趟 [ 11,19][4,5][7,13][2,10]
第二趟 [4,5,11,19][2,7,10,,13]
第三趟 [2,4,5,7,11,10,11,13](2)

第4题:

设待排序序列为{10,18,4,3,6,12,1,9,15,8}请写出希尔排序每一趟的结果。增量序列为5,3,2,1。


正确答案:初始:10,18,4,3,6,12,1,9,15,8
d=5:10,1,4,3,6,12,18,9,15,8
d=3:3,1,4,8,6,12,10,9,15,18
d=2:3,1,4,8,6,9,10,12,15,18
d=1:1,3,4,6,8,9,10,12,15,18

第5题:

设有初始序列(8,5,2,12,7,1,6,10,9,3,4,11),排序后产生新序列(4,5,2, 3,7,1,6,8,9,10,12,11),问采用的是下列哪一个排序算法一趟扫描的结果?( )

A.堆排序

B.初始步长为4的希尔排序

C.二路归并排序

D.以8为分界元素的快速排序


正确答案:D
解析:快速排序是对起泡排序的一种改进,其基本思想是:通过一趟排序将待排序记录n个成独立的两部分,其中一部分记录比关键字小,一部分比关键字大,再分别对这两部分记录进行同样的排序操作。

第6题:

对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到(1),快速排序(选第一个记录为基准元素)得到(2),基数(基数为10)排序得到(3),二路归并排序得到(4),堆排序得到(5) 。

A.2,4,6,8,10,12,16,18,20,28,30

B.6,2,10,4,8,12,28,30,20,16,18

C.12,2,10,20,6,18,4,16,30,8,28

D.30,10,20,12,2,4,16,6,8,28,18


正确答案:C

第7题:

对于关键码序列18,30,35,10,46,38,5,40进行堆排序(假定堆的根结点为最小关键码),在初始建堆过程中需进行的关键码交换次数为 ( )。


正确答案:3
3

第8题:

对于关键码序列18,30,35,10,46,38,5,40,进行堆排序(假定堆的根结点是最小关键码),在初始建堆过程中需进行的关键码交换次数为 ( ) 。


正确答案:
 3

第9题:

对于关键码序列18,30,35,10,46,38,5,40,进行堆排序(假定堆的根结点是最小关键码),在初始建堆过程中需进行的关键码交换次数为( )。

A.2次

B.3次

C.4次

D.5次


正确答案:B
解析:原始的堆如图1所示:因为n=8,所以n/2=4,所以从K4=10开始,第一次比较1040,不用交换:第二次比较35>5,两者相互交换,交换后如图2所示:第三次比较30>10,两者相互交换,交换后如图3所示;第四次比较18>5,两者相互交换,交换后如图4所示。所以交换的次数为3次。

第10题:

对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到__(1)__,快速排序(选第一个记录为基准元素)得到__(2)__,基数(基数为10)排序得到__(3)__,二路归并排序得到__(4)__,堆排序得到__(5)__。空白(3)处应选择()

  • A、10,6,18,8,4,2,12,20,16,30,28
  • B、1,12,10,20,6,18,4,16,30,8,28
  • C、2,4,6,8,10,12,16,18,20,28,30
  • D、30,10,20,12,2,4,16,6,8,28,18

正确答案:D

更多相关问题