活动安排--贪心算法C语言实现
生活随笔
收集整理的這篇文章主要介紹了
活动安排--贪心算法C语言实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.前言
大三下的算法設計分析課程。每周必備二道算法題。頭疼。自己寫的,大家看看就行。題目,我就截圖 ,懶得賦文字了。
二.內容
代碼:
#include<stdio.h> typedef struct{int s;//開始時間int f;//結束時間int flag;//標志位,0表示未被選擇,1表示被選擇 } Activity; int main(){//求解活動安排的最多活動數Activity a[1000];//一天的活動int n;//現存的活動int i;//循環變量int j;//循環變量int k;int af;//活動結束時間int count;//可以安排的活動數Activity temp;scanf("%d",&n);for(i=0;i<n;i++){//說明現存要安排的活動scanf("%d%d",&a[i].s,&a[i].f);}for(i=0;i<n-1;i++){//按活動結束時間排序,選擇法,從小到大排序k=i;for(j=i+1;j<n;j++){if(a[j].f<a[k].f){k=j;}}if(k!=i){temp=a[k];a[k]=a[i];a[i]=temp;}}//將活動結束時間最早的安排上a[0].flag=1;count=1;af=a[0].f;//采用貪心算法for(i=1;i<n;i++){if(a[i].s>=af){a[i].flag=1;count++;af=a[i].f;}else{a[i].flag=0;}}printf("%d",count);//輸出可以安排的活動數printf("\n");return 0; }總結
以上是生活随笔為你收集整理的活动安排--贪心算法C语言实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell 判断文件或文件夹是否存在(不
- 下一篇: Linux报错:/etc/sudoers