摘要:
思路 什么是堆 ①一棵完全二叉树,所以能用数组表示 ②堆顶为最大或最小(大根堆,小根堆),除了堆顶,堆里的元素没有用 ③左孩子右孩子都是堆 堆排序分两步 ①建堆 以原数组为空间建堆(代码选用着这种) 新建空间建堆 两种方法建立起来的堆不一样 ②调整堆 因为一个堆有用的就是堆顶元素,当我们取出堆顶元素 阅读全文
摘要:
思路总结 先将n个记录两两分组 若n为奇数也没关系,1个记录的组不需要进行比较,回到递归上一层会进行3个记录的merge 分组完成后,进行两两合并merge,merge中进行排序 因为两个需要合并的数组都是有序的,所以不需要O(nlogn)的排序方法,进行O(n)的比较排序即可 merge中需要辅助 阅读全文