趁考试周,总结一下这学期所学的数据结构与算法知识。这次先按考试内容来总结,暑假进行完善。 堆排序(C#实现) 背景 堆排序,就是利用堆这种数据结构来实现排序功能。本文介绍堆排序的基本原理及代码实现。 此外,本文只介绍升序排序的情况。 基本理论 堆分为大根堆和小根堆,当满足双亲结点均大于孩子结点时,称为大根堆;反之,若双亲结点均小于孩子结点时,称为小根堆。 实现过程: 给定一个含n个元素的序列,构建为大根堆,输出堆顶元素(实质上是将堆顶元素置换到序列尾部),对剩下的 n − 1 n-1