当前位置: 首页 > news >正文

用自己电脑做网站服务器-phpstudy+花生壳seo网络营销技术

用自己电脑做网站服务器-phpstudy+花生壳,seo网络营销技术,网店代运营犯法吗,佛山外贸网站建站实验二:贪心算法 【实验目的】 应用贪心算法求解活动安排问题。 【实验性质】 验证性实验。 【实验要求】 活动安排问题是可以用贪心算法有效求解的很好的例子。 问题:有n个活动的集合A{1,2,…,n},其中每个活动都要求使用同一资源&…

实验二:贪心算法

【实验目的】

应用贪心算法求解活动安排问题。

【实验性质】

验证性实验。

【实验要求】

活动安排问题是可以用贪心算法有效求解的很好的例子。

问题:有n个活动的集合A={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。

求解:安排尽量多项活动在该场地进行,即求A的最大相容子集。

设待安排的11个活动的开始时间和结束时间按结束时间的升序排列如下:

i

1

2

3

4

5

6

7

8

9

10

11

s[i]

1

3

0

5

3

5

6

8

8

2

12

f[i]

4

5

6

7

8

9

10

11

12

13

14

将此表数据作为实现该算法的测试数据。

【算法思想及处理过程】

1.定义了活动结构体Activity,包含活动的名称name、开始时间start和结束时间end。

2.定义了比较函数compare,用于按照活动的结束时间升序排序。

3.定义了一个活动安排函数activityArrangement,接受一个活动数组和活动个数作为参数,并按照活动结束时间排序后进行活动安排。

4.在活动安排函数中,首先使用sort函数对活动数组进行排序,排序规则是使用之前定义的比较函数compare。

5.输出第一个活动的信息。

6.初始化一个变量lastEnd,用于记录最后一个加入最大相容子集的活动的结束时间。

7.遍历剩下的活动数组,如果当前活动的开始时间晚于等于lastEnd,即活动不与已加入的活动冲突,将该活动加入最大相容子集,并更新lastEnd为该活动的结束时间。

8.输出结果。

在主函数中,首先获取用户输入的活动个数,然后根据输入的活动个数循环获取活动的名称、开始时间和结束时间。最后调用活动安排函数(activityArrangement)进行活动安排。

【程序代码】

#include <iostream>

#include <algorithm>

using namespace std;

struct Activity {

    int name;

    int start;

    int end;

};

bool compare(Activity a, Activity b) {

    return a.end < b.end;

}

void activityArrangement(Activity activities[], int n) {

    sort(activities, activities + n, compare);

    cout << "结果为: "<<endl;

    cout << "Activite " << activities[0].name << "=" << activities[0].start << ", " << activities[0].end <<endl;

    int lastEnd = activities[0].end;

    for (int i = 1; i < n; i++) {

        if (activities[i].start >= lastEnd) {

            cout << "Activite "<<activities[i].name <<"=" << activities[i].start << ", " << activities[i].end <<endl;

            lastEnd = activities[i].end;

        }

    }

    cout << endl;

}

int main() {

    int n;

    cout << "请输入活动个数: ";

    cin >> n;

    Activity activities[50];

    for (int i = 0; i < n; i++) {

        cout << "请输入第"<<i+1<<"次活动信息(名称 开始时间 结束时间) : ";

        cin >> activities[i].name >> activities[i].start >> activities[i].end;

    }

    activityArrangement(activities, n);

    return 0;

}

【运行结果】

自行运行截图

【算法分析】

排序算法的时间复杂度:使用了STL的sort函数对活动数组进行排序,该函数的时间复杂度为 O(nlogn),其中n为活动个数。

遍历活动数组的时间复杂度:在活动安排函数中,遍历了剩下的活动数组,时间复杂度为 O(n),其中n为活动个数。

综上,代码的时间复杂度为 O(nlogn + n),即 O(nlogn)。

http://www.yayakq.cn/news/620751/

相关文章:

  • 昆明网站的建设可以举报一个做网络网站发大财吗
  • 呼伦贝尔旅游网站建设app网站开发成本
  • 做弹幕网站有哪些wordpress表白系统
  • 网站建设公司厦门有哪些网站点击量查询
  • 无版权视频素材网站网站建设中 倒计时
  • 北京网站建设公司如何排版翠竹林wordpress主题
  • 网站设计制作的服务怎么样给关亨做网站的设计公司
  • 网站建设专家如何选首页标题在哪里打开
  • 济南网站建设求职入门网站建设
  • 深圳公司免费网站建设做那个类型的网站赚钱
  • 网站建设与管理难不难晋江做任务的网站
  • wordpress js链接许昌seo推荐
  • 网站优化排名首页大气公司网站源码 企业网页模板建站 制作asp程序后台 中英文代码
  • 标签式网站内容管理中信建设有限责任公司 联系方式
  • 线下推广怎么做镇江网站优化公司
  • 建设pc端网站是什么意思海丰县建设局官方网站
  • 山东省住房建设厅网站安全处网站竞价推广
  • 东莞网站建设网站排名优化提升网站响应时间
  • 先做网站先备案平面设计免费软件有哪些
  • 360免费建站连接湖州佳成建设网站
  • 做商城网站需要多大的服务器校园网站设计毕业设计
  • 陕西做网站的公司在哪快速收录网站
  • 北京网站设计公司新鸿儒网站外链建设
  • 北京哪里可以申请企业网站域名官网网站做下载word
  • 深圳定制网站建设禅城区网站建设
  • 网站建设公司官方网站自贡市城市建设投资开发集团有限公司网站
  • 企业网站开发是什么临沂网站制作网站
  • 河北廊坊建设银行网站国外黄冈网站推广
  • 高校二级网站建设要求自己做网站和凡科的区别
  • 怎么用记事本做网站wordpress为什么速度慢