自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 511

原创 C语言背包问题求解(贪心方法)

贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。1.目标函数: ∑pi最大,使得装入背包中的所有物品pi的价值加起来最大。2.约束条件:装入的物品总重量不超过背包容量:∑wi

2024-01-24 09:21:45 3624

原创 C语言用分治法实现数组归并排序算法实现

归并排序的过程是,将数组分为许多的组,即将数组元素多的数组分为数组元素少的数组,然后再将其合并。它的优点是,同时对多个数据进行对比排序,归并排序是分治法的典型应用。(3)回溯时合并子问题的解,在两个子问题的解中大者取大,小者取小,即合并为当前问题的解。(1)将数据等分为两组(两组数据的个数可能相差1),目的是分别选取其中的最大(小)值。(2)递归分解直到每组元素的个数

2024-01-23 11:32:32 646

原创 C语言用分治法找数组最大和最小元素算法实现

分治法分别求出最大值和最小值,将数组分成左右两部分,先求出左半部份的最大值和最小值,再求出右半部份的最大值和最小值,然后综合起来求总体的最大值及最小值。这是个递归过程,对于划分后的左右两部分,同样重复这个过程,直到划分区间内只剩一个元素或者两个元素,最后得出最大最小值。cout

2024-01-22 17:37:01 1061 2

C语言求最小生成树 普利姆算法(贪心思想)

目的: 1.掌握能用贪心法求解的问题应满足的条件; 2.加深对贪心法算法设计方法的理解与应用; 3.锻炼对程序跟踪调试能力; 4.练习培养应用所学知识解决实际问题的能力。 问题描述: 设G =(V,E)是无向连通带权图,即一个网络。(V是顶点集合,E是边集合)如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为该生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。 贪心选择策略: 每次都选择到下一顶点权最小的边。 基本步骤: 1.置顶点集合S={1}; 2.只要S是V的真子集,就作如下的贪心选择:选取满足条件i∈S,j∈V-S,且c[i][j]最小的边,将顶点j添加到S中。 3.这个过程一直进行到S=V时为止,选取到的所有边恰好构成G的一棵最小生成树。

2024-01-25

C语言背包问题求解(贪心方法)

问题描述: 有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 物品:A B C D E F G 重量:35 30 60 50 40 10 25 价值:10 40 30 50 35 40 30 算法描述: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。 问题分析: 1.目标函数: ∑pi最大,使得装入背包中的所有物品pi的价值加起来最大。 2.约束条件:装入的物品总重量不超过背包容量:∑wi<=M( M=150) 3.贪心策略: 选择单位重量价值最大的物品

2024-01-24

C语言用分治法实现数组归并排序算法实现

目的: 1.掌握能用分治法求解的问题应满足的条件; 2.加深对分治法算法设计方法的理解与应用; 3.锻炼学生对程序跟踪调试能力; 4.通过本次实验的练习培养学生应用所学知识解决实际问题的能力。 问题: 输入N个数对其进行归并排序。 解决策略: 分治法策略:           问题可以简化为在n个数里面寻找最大和最小值。 (1)将数据等分为两组(两组数据的个数可能相差1),目的是分别选取其中的最大(小)值。 (2)递归分解直到每组元素的个数<=2,则可以简单地找到其中的最大(小)值。 (3)回溯时合并子问题的解,在两个子问题的解中大者取大,小者取小,即合并为当前问题的解。 归并排序的过程是,将数组分为许多的组,即将数组元素多的数组分为数组元素少的数组,然后再将其合并。它的优点是,同时对多个数据进行对比排序,归并排序是分治法的典型应用。 分:体现在将数组分为小数组。 治:对排好序的数组进行合并。

2024-01-23

C语言用分治法找数组最大和最小元素算法实现

问题描述:        输入N个数,找出其中的最大最小值,用分治法求解问题。 设计思路:        常规的做法是遍历一次,分别求出最大值和最小值,但我这里要说的是分治法,将数组分成左右两部分,先求出左半部份的最大值和最小值,再求出右半部份的最大值和最小值,然后综合起来求总体的最大值及最小值。这是个递归过程,对于划分后的左右两部分,同样重复这个过程,直到划分区间内只剩一个元素或者两个元素,最后得出最大最小值。 解决问题的策略: .分治法:分治法(二分法)策略是一种更高效的方法,可以将问题简化为在n个数中寻找最大和最小值。具体步骤如下: 将数据等分为两组(两组数据的个数可能相差1),目的是分别选取其中的最大和最小值。 递归地将每组数据继续分解,直到每组元素的个数小于等于2,这样就可以简单地找到其中的最大和最小值。 回溯时,将子问题的解合并起来。在两个子问题的解中,选择较大的数作为当前问题的最大值,选择较小的数作为当前问题的最大值,选择较小的数作为当前问题的最小值。 这样,通过分治法(二分法)策略,可以更快地找到最大和最小值。

2024-01-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除