我是靠谱客的博主 义气茉莉,最近开发中收集的这篇文章主要介绍算法分析与设计 贪心值之最大相容子集问题算法分析与设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

算法分析与设计

最大相容子集问题

问题描述:

有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截至之间。如果任何两个活动不能同时进行,问如何选择这些活动,从而使得被安排的活动数量达到最多。

算法

按照截止时间从小到大排序,之后从前往后挑选。

核心代码:

int Greedy() {
    int num=1;
    sort(a+1,a+n+1,comp);
    int temp=0;
    cout<<a[1].i;
    for(int i=2;i<=n;i++){
        if(a[i].s>=a[temp].f){
	    num++;
	    temp=i;
            cout<<" "<<a[temp].i;
        }
    }
    cout<<"n";
    return num;
}


时间复杂度:

算法的时间复杂度为O(n)。

源码:

https://github.com/SpiritDemon-max/myText/blob/master/Greedy.cpp

最后

以上就是义气茉莉为你收集整理的算法分析与设计 贪心值之最大相容子集问题算法分析与设计的全部内容,希望文章能够帮你解决算法分析与设计 贪心值之最大相容子集问题算法分析与设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部