堆排序:
n*log(n)的时间复杂度, 非稳定排序,原地排序。
它的思想是利用的堆这种数据结构,堆可以看成一个完全二叉树,所以在排序中比较的次数可以做到很少。
加上他也是原地排序,不需要申请额外的空间,效率也不错。
堆的重要特点是每一次循环都会建立新的最大或最小堆。
C++代码实现:
堆排序:
n*log(n)的时间复杂度, 非稳定排序,原地排序。
它的思想是利用的堆这种数据结构,堆可以看成一个完全二叉树,所以在排序中比较的次数可以做到很少。
加上他也是原地排序,不需要申请额外的空间,效率也不错。
堆的重要特点是每一次循环都会建立新的最大或最小堆。
C++代码实现: