算法
草里多
这个作者很懒,什么都没留下…
展开
-
什么是堆排序
堆排序在平时用的也非常的多!这里来总结一下堆排序。首先我们来了解一下什么是堆:堆是一颗完全二叉树那堆有什么特点呢?堆中的节点有如下的特征:堆中的每个节点都是不大于或者不小于其父节点的根据堆的特征,我们可以将堆分为大顶堆和小顶堆:大顶堆:就是堆的每个节点值都是不大于其父节点的值。也就是树根的值是最大的,我们也叫大顶小顶堆:就是堆的每个节点值都是不小于其父节点的值,即树根的值是最小的,即小顶。接下来了解一下堆排序的思路:先拿升序来讲,先构建一个大顶堆;构建好之后将顶与最后一个叶子节点原创 2021-03-20 10:04:42 · 803 阅读 · 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 · 1353 阅读 · 0 评论