贪心法实现无向图的划分

给定一个无向图,使用贪心算法划分其节点,希望集合数目越来越少。

矛盾:贪心算法总是局部最优,对于整个问题的求解不一定是最优的。

想法:使用韦尔奇鲍威尔算法来求解该问题。

鲍威尔算法:把图的节点按度的降序排列,第一种颜色对第一点着色,按照着色顺序把非临阶点着色;然后是第二种。。。。。。直到全部上色。

对于节点集合按照度的降序排列,使用sort方法。
sort(begin,end)表示比较从begin到end的数据,默认是升序

int a[20]
sort(a,a+10);

把数组a的前11个元素升序排列。
实现sort的降序排列需要自己写比较函数

int a[20];
bool compare(int a,int b)
{
return a>b;//降序排列
}
sort(a,a+20,compare);
阅读更多
个人分类: 数据结构和算法
上一篇递归生成二叉树 day2
下一篇贪心法实现无向图的划分 代码
博主设置当前文章不允许评论。

没有更多推荐了,返回首页

关闭
关闭