- 博客(4)
- 收藏
- 关注
原创 C语言求最小生成树 普利姆算法(贪心思想)
(V是顶点集合,E是边集合)如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为该生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。2.只要S是V的真子集,就作如下的贪心选择:选取满足条件i∈S,j∈V-S,且c[i][j]最小的边,将顶点j添加到S中。3.这个过程一直进行到S=V时为止,选取到的所有边恰好构成G的一棵最小生成树。贪心选择策略: 每次都选择到下一顶点权最小的边。1.掌握能用贪心法求解的问题应满足的条件;1.置顶点集合S={1};
2024-01-25 14:47:33
649
原创 C语言背包问题求解(贪心方法)
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。1.目标函数: ∑pi最大,使得装入背包中的所有物品pi的价值加起来最大。2.约束条件:装入的物品总重量不超过背包容量:∑wi
2024-01-24 09:21:45
5823
原创 C语言用分治法实现数组归并排序算法实现
归并排序的过程是,将数组分为许多的组,即将数组元素多的数组分为数组元素少的数组,然后再将其合并。它的优点是,同时对多个数据进行对比排序,归并排序是分治法的典型应用。(3)回溯时合并子问题的解,在两个子问题的解中大者取大,小者取小,即合并为当前问题的解。(1)将数据等分为两组(两组数据的个数可能相差1),目的是分别选取其中的最大(小)值。(2)递归分解直到每组元素的个数
2024-01-23 11:32:32
738
1
原创 C语言用分治法找数组最大和最小元素算法实现
分治法分别求出最大值和最小值,将数组分成左右两部分,先求出左半部份的最大值和最小值,再求出右半部份的最大值和最小值,然后综合起来求总体的最大值及最小值。这是个递归过程,对于划分后的左右两部分,同样重复这个过程,直到划分区间内只剩一个元素或者两个元素,最后得出最大最小值。cout
2024-01-22 17:37:01
1539
3
C语言求最小生成树 普利姆算法(贪心思想)
2024-01-25
C语言背包问题求解(贪心方法)
2024-01-24
C语言用分治法实现数组归并排序算法实现
2024-01-23
C语言用分治法找数组最大和最小元素算法实现
2024-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人