设有关键字序列(503,087,512,061,908,170,897,275,653,426)试使用堆排序对其进行排序,要求写出每趟排序结束时关键字序列的状态
时间: 2024-06-14 10:06:12 浏览: 181
堆排序及其用途
堆排序是一种基于二叉堆的排序算法。它的主要思想是将待排序序列构建成一个大顶堆(或小顶堆),然后将堆顶元素与最后一个元素交换,再对剩余的元素进行调整,重复这个过程直到整个序列有序。
下面是使用堆排序对关键字序列(503,087,512,061,908,170,897,275,653,426)进行排序的每趟排序的状态:
初始序列:503,087,512,061,908,170,897,275,653,426
第1趟排序:
构建大顶堆:908,653,897,512,426,170,503,275,061,087
交换堆顶元素和最后一个元素:087,653,897,512,426,170,503,275,061,908
第2趟排序:
构建大顶堆:897,653,503,512,426,170,087,275,061
交换堆顶元素和最后一个元素:061,653,503,512,426,170,087,275,897
第3趟排序:
构建大顶堆:653,512,503,275,426,170,087,061
交换堆顶元素和最后一个元素:061,512,503,275,426,170,087,653
第4趟排序:
构建大顶堆:512,426,503,275,061,170,087
交换堆顶元素和最后一个元素:087,426,503,275,061,170,512
第5趟排序:
构建大顶堆:503,426,170,275,061,087
交换堆顶元素和最后一个元素:061,426,170,275,087,503
第6趟排序:
构建大顶堆:426,275,170,061,087
交换堆顶元素和最后一个元素:087,275,170,061,426
第7趟排序:
构建大顶堆:275,087,170,061
交换堆顶元素和最后一个元素:061,087,170,275
第8趟排序:
构建大顶堆:170,087,061
交换堆顶元素和最后一个元素:061,087,170
第9趟排序:
构建大顶堆:087,061
交换堆顶元素和最后一个元素:061,087
最终有序序列:061,087,170,275,426,503,512,653,897,908
阅读全文