![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
盛夏与微风
要加油哦
展开
-
使用堆排序实现优先队列
首先了解几个概念: 堆有序:在数组中,每个元素大于等于两个特定位置的元素。二叉树中,每个父节点的值要大于等于两个子节点的值 完全二叉树:每个节点的子节点个数为2或0 二叉堆:是一组能用堆有序的完全二叉树排序的元素,并在数组中按照二叉树的层序遍历顺序保存。 如果要将上图的二叉堆元素(节点数为N)保存在数组中,则需要创建一个长为N+1的数组,第0个元素不用,使用[1~N]保存节点。上述二叉堆按照层...原创 2019-07-12 11:55:59 · 1849 阅读 · 2 评论 -
01背包、完全背包、多重背包模板
三种背包概念 01背包(ZeroOnePack): 有N件物品和一个容量为V的背包。每种物品均只有一件。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 完全背包(CompletePack): 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总...原创 2019-08-24 15:31:00 · 374 阅读 · 0 评论 -
拓扑排序入门和算法题模板
概念 拓扑排序:在有向图中,将节点进行排序,使得后面的节点不会指向前面节点。 如果最后有节点指向前面,表示图有环,不存在拓扑排序。 算法模板 拓扑算法常用来解决优先度限制下的调度问题,如: 先统计所有节点的入度,删除入度为0的节点,然后把这个节点指向的节点的入度减一,一直做改操作,直到所有的节点都被分离出来,如果最后存在入度不为0的节点,则表示有环。 1.计算每个节点的入度,使用数组保存; 2...原创 2019-08-23 09:22:57 · 474 阅读 · 0 评论