
【数据结构高手进】给个堆排序的实例(不要代码)
展开全部
假设是打算做从小到大的排序,所以是建大顶堆。
初始的时候堆就是整个序列(15,14,5,7,12,18)
所以整个堆的样子是:
15
14 5
7 12 18
此时从最底部的三元组开始进行建堆
第一步: 第二步:
15 18
14 18 14 15
7 12 5 7 12 5
接着开始排序,此时先交换18 和 5,此时18就是最大的一个数位于最末位置,该数
不用继续堆排序,因此对
5
14 15
7 12
进行建堆过程,结果为:
15
14 5
7 12
依次类推即可完成最终的堆排序。
第一次建堆和后续堆排序的过程差别在于,第一次堆序列都是乱的,所以
从最后的一个分支由下而上的建堆,而后面的堆排序过程,由于堆已经有
基本规律,除了顶部元素以外,其他都基本有序,所以从上向下进行建堆过程。
初始的时候堆就是整个序列(15,14,5,7,12,18)
所以整个堆的样子是:
15
14 5
7 12 18
此时从最底部的三元组开始进行建堆
第一步: 第二步:
15 18
14 18 14 15
7 12 5 7 12 5
接着开始排序,此时先交换18 和 5,此时18就是最大的一个数位于最末位置,该数
不用继续堆排序,因此对
5
14 15
7 12
进行建堆过程,结果为:
15
14 5
7 12
依次类推即可完成最终的堆排序。
第一次建堆和后续堆排序的过程差别在于,第一次堆序列都是乱的,所以
从最后的一个分支由下而上的建堆,而后面的堆排序过程,由于堆已经有
基本规律,除了顶部元素以外,其他都基本有序,所以从上向下进行建堆过程。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询