什么是堆排序?
堆排序是一种基于二叉堆数据结构的排序算法。它利用堆的性质(最大堆或最小堆)来选择元素。
算法步骤
- 建堆 (Build Heap): 将无序的输入数组构建成一个最大堆。最大堆的性质是父节点的值总是大于或等于其子节点。
- 排序 (Sort): a. 将堆顶元素(最大值)与堆的最后一个元素交换。 b. 将堆的大小减一。 c. 对新的堆顶元素进行“堆化”(heapify)操作,以维持最大堆的性质。 d. 重复步骤 a-c,直到堆的大小为 1。
7/8/24About 1 min
堆排序是一种基于二叉堆数据结构的排序算法。它利用堆的性质(最大堆或最小堆)来选择元素。
快速排序是另一种基于分治思想的排序算法。它通过一个“基准”(pivot)元素将数组分区,然后递归地对基准左右两边的子数组进行排序。
归并排序是一种高效的、基于分治思想的排序算法。它将一个大问题分解为多个小问题来解决。其核心操作是“归并”,即将两个已经有序的序列合并成一个有序序列。