全部科目 > 软件设计师 >
2023年上半年 上午试卷 综合知识
第 63 题
知识点 堆排序  
章/节 计算机软件知识  
 
 
对—组数据进行排序,要求排序算法的时间复杂度为O(nlgn),且要求排序是稳定的,则可采用(62)算法。若要求排序算法的时间复杂度为O(nlgn),且在原数据上进行,即空间复杂度为O(1),则可采用(63)算法。
 
  A.  直接插入排序
 
  B.  堆排序
 
  C.  快速排序
 
  D.  归并排序
 
 




 
 
相关试题     排序 

  第65题    2017年下半年  
现需要对一个基本有序的数组进行排序。此时最适宜采用的算法为(64)排算法,时间复杂度为(65)。

  第63题    2013年上半年  
给定n个整数构成的数组A={a1,a2,…,an}和整数x,判断A中是否存在两个元素ai和aj,使得ai+aj=x。为了求解该问题,首先用归并排序算法对数组A进行从小到大排序;然后判断是否存在ai+aj=x,具..

  第63题    2013年下半年  
对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分别为(62);若采用快速排序算法,则时间和空间复杂度分别为(63)。

 
知识点讲解
· 堆排序
 
        堆排序
        对于n个元素的关键字序列K1,K2,…,Kn,当且仅当所有关键字都满足下列性质时称其为堆,即
        
        若堆顶为最小元素,则称为小根堆;若堆顶为最大元素,则称为大根堆。
        堆排序的基本思想是:对一组待排序记录的关键字,首先把它们按堆的定义排成一个堆序列,从而输出堆顶的最小关键字(对于小根堆而言),然后将剩余的关键字再调整成新堆,便得到次小的关键字,如此反复进行,直到全部关键字排成有序序列为止。
        对于记录数较少的文件来说,堆排序的优越性并不明显,但对大量的记录来说堆排序是很有效的。堆排序的整个算法时间是由建立堆和不断调整堆这两部分时间代价构成的,堆排序算法的时间复杂度为O(nlog2n)。此外,堆排序只需要一个记录大小的辅助空间。但是堆排序是一种不稳定的排序方法。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有