摘要: 一、二叉堆 堆有序:一颗二叉树中每个节点都大于或者等于其两个孩子时,就称为堆有序。根节点是堆有序的二叉树的最大节点。 堆有序的二叉树可以用指针来表示,堆有序的完全二叉树除了可以用指针表示外,还可以用数组表示。 二叉堆:二叉堆是一组堆有序的完全二叉树,并且在数组中按层级存储(不使用数组中0号位置的元素 阅读全文
posted @ 2017-09-17 18:13 Qcer 阅读(757) 评论(0) 推荐(0) 编辑
摘要: java实现: 细节和注解都在注释在代码中了。 一些值得注意的细节问题: 1、i从low开始,j从high+1开始;i和j指针移动过程中采用++i和--j的形式。 2、if (i == high) {break;}需要检查,否则在某些情况下会出错。 阅读全文
posted @ 2017-09-17 12:09 Qcer 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 一、merge算法 合并算法merge()总是基于这样一个事实:单个元素总是有序的。 对于原待排序列,因为单元素是最小的有序单元,因此合并算法总是从两个单元素作为待合并的子序列开始,逐步向上合并。 例如:int[] ary = {9,12,78,10,30,8,20,15,50,60};其合并轨迹为 阅读全文
posted @ 2017-09-17 10:07 Qcer 阅读(189) 评论(0) 推荐(0) 编辑