c语言数据结构 堆

花开两朵,努力更博! 积累知识,早日成才。

堆---二叉树应用结构 隶属数据结构科目

1.歧义讲解:在之前常常会讲malloc的内容在堆,这里的堆是指进程地址内存区域的划分,隶属操作系统科目。两者是完全不同,注意避免混淆。

2.分类:

大根堆、小根堆

c语言数据结构 堆_第1张图片

规律:

leftchild=parent*2+1 奇数

rightchild=parent*2+2 偶数

parent=(child-1)/2

3.堆的应用

a.堆排序,时间复杂度为O(N*logN)

b. topk问题,一堆数据求前k大数据或者一堆数据求前k小数据

4.堆的实现

c语言数据结构 堆_第2张图片

c语言数据结构 堆_第3张图片

 c语言数据结构 堆_第4张图片

c语言数据结构 堆_第5张图片 c语言数据结构 堆_第6张图片

 

c语言数据结构 堆_第7张图片

你可能感兴趣的:(数据结构,算法)