摘要: AVL树说明: 该树是一种高度平衡的二叉搜索树,该树中的每一个结点左右子树的高度至多相差1。 AVL树本身也是一个二叉搜索树。 AVL基本结构定义如下: #define LH +1 // 左高 #define EH 0 // 等高 #define RH -1 // 右高 struct BTNode 阅读全文
posted @ 2020-04-11 23:19 _yanghh 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 算法描述: 快速排序也使用分治思想,其过程为: 分解:将原数组划分为两个子数组,但要求左边数组的每个元素都小于右边数组的每个元素。 解决:通过递归调用快速排序,对子数组进行排序。 合并:因为子数组是原址排序,所以不需要合并操作。 快速排序划分数组的方法: 1. 单方向遍历 选择最后一个元素为基准元素 阅读全文
posted @ 2020-04-11 15:41 _yanghh 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 分治法: 将原问题分解为几个规模较小但类似于原问题的子问题,递归得求解这些子问题,然后再合并这些子问题的解 来建立原问题的解。即遵循3个步骤: 分解:将原问题分解为规模较小的若干实例。 解决:递归求解各个子问题。然而,若子问题的规模足够小,则直接求解。 合并:将子问题的解合并成原问题的解。 归并排序 阅读全文
posted @ 2020-04-11 12:30 _yanghh 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 算法描述: 搜索时,只要尽可能,就在图中尽量深入。 深度优先搜索总是对最近才发现的结点v的出发边进行探索,直到该结点的所有出发边都被发现为止。一旦 结点v的所有出发边都被发现,探索则回溯到v的前驱结点,来探索该前驱结点的出发边。该过程一直持续到从 源节点可以到达的所有结点都被发现为止。 深度优先搜索 阅读全文
posted @ 2020-04-11 09:41 _yanghh 阅读(219) 评论(0) 推荐(0) 编辑