- 博客(6)
- 收藏
- 关注
原创 快速排序,归并排序的递归实现(c++)
快速排序的递归实现1.算法思想原理快速排序算法是基于分治策略的另一个排序算法。其基本思想是,对于输入的子数组a[p:r],按以下三个步骤进行排序。①分解(Divide):以a[p]为基准元素将a[p:r]划分成3段a[p:q-1],a[q]和a[q+1:r],使a[p:q-1]中任何一个元素小于等于a[q],而a[q+1:r]中任何一个元素大于等于a[q.下标p在划分过程中确定。②递归求解(Conquer):通过递归调用快速排序算法,分别对a[p:q-1]和a[q+1:r]进行排序。③合并(Me
2022-01-10 10:50:56 1297
原创 动态规划求解矩阵连乘
基本思想动态规划算法与分治法类似,其基本思想是将待求解的问题分解成若干子问题,先求解子问题,再结合子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法求解的问题经分解求解的子问题往往不是相互独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,以致最后解决原问题需要耗费指数级时间。然而,不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问斯被重复计算了许多次。如果能够保存已解决的子问题的答案,在需要时再找出已求得的答案,这样可以避免大量的重复计算,从而得到多项式时间算法。为了达到
2022-01-09 21:20:23 10496 2
原创 回溯法,分支限界法,动态规划法求解0-1背包问题(c++)
0-1背包问题1、问题描述给定n种物品和一背包。物品i的重量是wi>0,其价值为vi>0,背包的容量为c。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?搜索空间:子集树(完全二叉树)约束函数(进包用):如果当前背包中的物品总重量是cw,前面k-1件物品都已经决定是否进包,那么第k件物品进包的条件是:cw +w:≤M。上界函数(不进包用):设cp是当前价值,r是将剩余物品的价值之和.cp十r为对应装包方案集的上界。上界函数(不进包用):设cp是当前价值,r是将剩
2022-01-09 20:38:03 6253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人