选择排序,需要每次在未排序的数组中找到最小元,然后与有序部分的最大值交换,在一个for循环中,简单的扫描获取最小元,复杂度为O(n²);因此,想办法优化获取最小元的部分,用最小堆,于是优化为堆排序;

选择排序与堆排序

在排序过程中,使用最小堆需要新开辟一个数组用于存放临时拍好的部分数组,排好后再导回原始的数组输出,浪费了O(n)空间;

选择排序与堆排序

改进:使用最大堆,把根节点的最大元素调整到最后一个节点,然后堆的规模减1;

选择排序与堆排序

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
  • 2021-03-28
  • 2021-07-24
  • 2022-12-23
  • 2021-05-13
  • 2021-09-16
猜你喜欢
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2021-10-28
相关资源
相似解决方案