算法
草里多
这个作者很懒,什么都没留下…
展开
-
什么是堆排序
堆排序在平时用的也非常的多!这里来总结一下堆排序。 首先我们来了解一下什么是堆: 堆是一颗完全二叉树 那堆有什么特点呢? 堆中的节点有如下的特征:堆中的每个节点都是不大于或者不小于其父节点的 根据堆的特征,我们可以将堆分为大顶堆和小顶堆: 大顶堆:就是堆的每个节点值都是不大于其父节点的值。也就是树根的值是最大的,我们也叫大顶 小顶堆:就是堆的每个节点值都是不小于其父节点的值,即树根的值是最小的,即小顶。 接下来了解一下堆排序的思路:先拿升序来讲,先构建一个大顶堆;构建好之后将顶与最后一个叶子节点原创 2021-03-20 10:04:42 · 797 阅读 · 1 评论 -
动态规划解决问题:数字和为sum的方法数
题目描述: 数字和为sum的方法数(给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。) 输入描述: 输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正整数Ai,以空格隔开。 示例1 输入 5 15 5 5 10 2 3 输出 4 这道题拿到手,其实还是有几分懵逼,为了更好的解决这个问题,首选的方法当然是动态规划: 动态规划的核心思想就原创 2021-02-02 15:42:27 · 1319 阅读 · 0 评论