堆排序
堆排序(Heap Sort)是一种基于堆数据结构的比较排序算法,时间复杂度在最坏情况下仍保证 O(n log n),空间复杂度 O(1),是原地排序算法。
原创大约 8 分钟
堆排序(Heap Sort)是一种基于堆数据结构的比较排序算法,时间复杂度在最坏情况下仍保证 O(n log n),空间复杂度 O(1),是原地排序算法。
这是最简单也最没用的算法, 时间复杂度有O(n^2), 同时也不稳定
选择排序的思路特别简单: 第一遍找到最小的值把它放在最前面, 再遍历一次找到第二小的数放到第二个位置......
那么我们怎么开始写这个程序呢?
首先第一步是要找到最小的那个数, 如果遍历到的arr[j]比最小位置还要小,那么就让minPosition = j, 所以
minPosition := 0
arr := []int{1, 3, 2, 4, 6, 5}
for j := 0; j < len(arr); j++ {
if arr[j] < arr[minPosition] {
minPosition = j
}
}