堆排序是排序算法中内排序的一种,属于选择排序的一种,但是我觉得相比简单选择排序,从时间复杂度上来看,性能优。 时间复杂度(平均)是O(nlog2n) 时间复杂度(最坏)是O(nlog2n) 时间复杂度(最好)是O(nlog2n) 空间复杂度是O(1) 是个不稳定的排序算法。 基本思想: 1.首先将待排序的数组构造成一个大根堆,此时,整个数组的最大值就是堆结构的顶端 2.将顶端的数与末尾的数交换,此时,末尾的数为最大值,剩余待排序数组个数为n-1 3.将剩余的n-1个数再构造成大根堆,再将顶端数与n-1位置的数交换,如此反复执行,便能得到有序数组
点赞 评论

相关推荐

牛客网
牛客企业服务