摘要: 动态规划是一种算法思想,将原始问题拆分成规模更小且与原始问题性质相同的子问题,利用子问题的解得到原始问题的解。 动态规划的适用条件之一是存在重叠子问题。动态规划的实现方式可以是自顶向下或自底向上。 1)使用自顶向下实现时,通常使用递归实现,但这种方式通常会重复计算相同的子问题,导致时间复杂度很高。 阅读全文
posted @ 2020-09-20 13:02 _yanghh 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 堆的结构可以分为大根堆和小根堆,是一个完全二叉树,而堆排序是根据堆的这种数据结构设计的一种排序。 大根堆:每个结点的值都大于其左孩子和右孩子结点的值。所以对任一棵子树:根节点的值都是最大的。 小根堆:每个结点的值都小于其左孩子和右孩子结点的值。所以对任一棵子树:根节点的值都是最小的。 堆可以采用数组 阅读全文
posted @ 2020-09-20 07:45 _yanghh 阅读(431) 评论(0) 推荐(0) 编辑