今天学习了Python的堆排序。堆排序也是一个不稳定排序,其时间复杂度为O(nlogn),空间复杂度为O(1)。
堆排序的算法是:建立一个最大堆,然后堆顶元素为最大元素,依次将堆顶元素放在列表最后,即将第一个元素与最后一个元素交换,交换之后剩余部分再堆排序,直到只剩堆顶。
备注:相关代码如下:
图片发自简书App
今天学习了Python的堆排序。堆排序也是一个不稳定排序,其时间复杂度为O(nlogn),空间复杂度为O(1)。
堆排序的算法是:建立一个最大堆,然后堆顶元素为最大元素,依次将堆顶元素放在列表最后,即将第一个元素与最后一个元素交换,交换之后剩余部分再堆排序,直到只剩堆顶。
备注:相关代码如下: