
堆排序
堆排序利用大顶堆(或小顶堆)的堆性质,先将待排序数组构建成堆,反复取出堆顶最大元素放到末尾,再调整剩余元素维持堆结构,完成排序;时间复杂度稳定\(O(n\log n)\),原地排序,属于不稳定排序。
基础算法, 排序
带有标签的文章:
3篇文章

堆排序利用大顶堆(或小顶堆)的堆性质,先将待排序数组构建成堆,反复取出堆顶最大元素放到末尾,再调整剩余元素维持堆结构,完成排序;时间复杂度稳定\(O(n\log n)\),原地排序,属于不稳定排序。

快速排序基于分治思想,选取一个基准元素,把数组划分成小于基准和大于基准的两部分,再递归对左右子区间继续划分排序;平均时间复杂度\(O(n\log n)\),最坏\(O(n^2)\),属于不稳定排序,不需要额外开辟大量辅助空间。

插入排序的核心思想是将数组分为已排序和未排序两部分,依次取出未排序部分的元素,向前遍历已排序部分找到合适位置插入,不断扩大有序区间直至整个数组有序,适合小规模数据,时间复杂度最坏为 O (n²)。