算法 堆是怎样的一种结构

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 13:56:07
算法 堆是怎样的一种结构

算法 堆是怎样的一种结构
算法 堆是怎样的一种结构

算法 堆是怎样的一种结构
堆有两个含义,一个是用于动态分配用的堆区,另外一个是一种很重要的数据结构
以下说明都是关于后面的堆:
存储结构是顺序,逻辑结构是完全二叉树,按照各数据元素关键码的次序不同分为大根堆(也就大顶堆)和小根堆(也叫小顶堆),建立好初始堆,就可以在得到单独的最大值(大根堆)或者最小值(小根堆)后,以最短时间(O(log2n))再次得到第二大(或者第二小)的关键码值,并且保持结构还是堆,一般用于优先级队列的实现,像C++stl的priority_queue,还有一种排序叫做堆排序的同样也是以其为基础的