1.堆排序
堆排序是一种原地排序算法,即不需要额外的空间来存储数据,只需要在原数组上进行操作即可。
堆排序是一种不稳定排序算法,即可能会改变相同元素的相对顺序。例如,如果数组中有两个相同的元素,它们可能会在排序过程中被交换,导致它们的顺序发生变化。
堆排序的时间复杂度为O(nlogn),即无论数组是有序还是无序,堆排序都需要O(nlogn)的时间来完成排序。这是因为建堆的过程需要O(n)的时间,而每次交换和调整堆的过程需要O(logn)的时间,共需要进行n−1次交换和调整,所以总的时间复杂度为O(nlogn)。
堆排序的空间复杂度为O(1),即只需要常数个额外的空间来存储临时变量,不需要额外的数组或其他数据结构来辅助排序。
标签:数据结构,20241011,复杂度,堆排序,大二,算法,需要,排序,nlogn From: https://www.cnblogs.com/landboat/p/18458346