摘要: 目的:掌握 堆排序 的 基本思想与过程、代码实现、时间复杂度 1、基本思想与过程: (1)将数组看做是一棵二叉树,并且是完全二叉树,将其变为最大二叉堆,即每一个父节点均大于其相连的子节点; (2)将堆顶元素与末尾元素交换,并重新调整为最大堆,这时,堆中末尾元素为最大元素,即数组中的最大元素已经乖乖在 阅读全文
posted @ 2018-08-30 19:07 Cassie_茜 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 目的:掌握 归并排序 的 基本思想与过程、代码实现、时间复杂度 1、基本思想与过程:先递归的分解数列,再合并数列(分治思想的典型应用) (1)将一个数组拆成A、B两个小组,两个小组继续拆,直到每个小组只有一个元素为止。 (2)按照拆分过程逐步合并小组,由于各小组初始只有一个元素,可以看做小组内部是有 阅读全文
posted @ 2018-08-30 17:00 Cassie_茜 阅读(4292) 评论(0) 推荐(1) 编辑
摘要: 目的:掌握 快速排序 的 基本思想与过程、代码实现、时间复杂度 1、基本思想与过程:(分治思想,挖坑填数) (1)从数列中选择一个数作为key值; (2)将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边; (3)对左右两个小数列重复第二步,直至各区间只有1个数。 下面对数组【42, 阅读全文
posted @ 2018-08-30 14:44 Cassie_茜 阅读(375) 评论(0) 推荐(0) 编辑