纯C语言:谈心会议安排源码
2014-01-01 15:28
253 查看
#include<stdio.h> struct Object { int ObjectId; int ObjectStart; int ObjectFinish; }obj[11]; void Sort(Object obj[],int n) { int j; Object temp; int i; for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) { if(obj[j].ObjectFinish>obj[j+1].ObjectFinish) { temp=obj[j]; obj[j]=obj[j+1]; obj[j+1]=temp; } } } } int GreedySelector(Object obj[],int n) { bool a[11]; a[0]=true; int j=0; int count=1; for(int i=1;i<n;i++) { if(obj[i].ObjectStart>=obj[j].ObjectFinish) { a[i]=true; j=i; count++; } else { a[i]=false; } } return count; } void main() { struct Object obj[11]; obj[0].ObjectId=1; obj[0].ObjectStart=1; obj[0].ObjectFinish=4; obj[1].ObjectId=2; obj[1].ObjectStart=3; obj[1].ObjectFinish=5; obj[2].ObjectId=3; obj[2].ObjectStart=0; obj[2].ObjectFinish=6; obj[3].ObjectId=4; obj[3].ObjectStart=5; obj[3].ObjectFinish=7; obj[4].ObjectId=5; obj[4].ObjectStart=3; obj[4].ObjectFinish=8; obj[5].ObjectId=6; obj[5].ObjectStart=5; obj[5].ObjectFinish=9; obj[6].ObjectId=7; obj[6].ObjectStart=6; obj[6].ObjectFinish=10; obj[7].ObjectId=8; obj[7].ObjectStart=8; obj[7].ObjectFinish=11; obj[8].ObjectId=9; obj[8].ObjectStart=8; obj[8].ObjectFinish=12; obj[9].ObjectId=10; obj[9].ObjectStart=2; obj[9].ObjectFinish=13; obj[10].ObjectId=11; obj[10].ObjectStart=12; obj[10].ObjectFinish=14; Sort(obj,11); int sum = GreedySelector(obj,11); printf("最多可以安排%d个活动\t",sum); } 2 #include<iostream.h> #define Max 100 typedef struct { int start; int finish; int number; }arrange; arrange plans[Max]; bool a[Max]; void interchange(arrange* m,arrange* n) { arrange temp=*m; *m=*n; *n=temp; } int partition(arrange array[],int p,int q) { int i,j; i=p; j=q+1; while(1) { do i++; while((array[i].finish<array[p].finish)&&(i!=q)); do j--; while((array[j].finish>array[p].finish)&&(j!=p)); if(i<j) interchange(&array[i],&array[j]); else break; } interchange(&array[p],&array[j]); return j; } void quicksort(arrange array[],int p,int q) { int j; if (p<q) { j=partition(array,p,q); quicksort(array,p,j-1); quicksort(array,j+1,q); } } int greedySelector(arrange p[] , bool a[],int n) { a[0]=true; int j=0; int count=1; for (int i=1;i<n;i++) { if (p[i].start>=p[j].finish) { a[i]=true; j=i; count++; } else a[i]=false; } return count; } void main() { int n,i; cout<<"please input the number of arrange:"<<endl; cin>>n; for(i=0;i<n;i++) { cout<<"input "<<i+1<<" start and finish time"<<endl; cin>>plans[i].start>>plans[i].finish; plans[i].number=i+1; } quicksort(plans,0,n-1); cout<<"共能举行"<<greedySelector(plans, a,n)<<"次活动,分别是:"; for(i=0;i<n;i++) if(a[i]) cout<<plans[i].number <<" "; cout<<endl; }
相关文章推荐
- 打造自己的视频会议系统 GGMeeting(附送源码)
- NYOJ---14题会议安排
- C语言递归实现N宫格(九宫格)源码
- 算法与数据结构:C语言的整数数组全排列(源码)
- C语言字符串处理函数源码
- C语言实现的ls命令源码分享
- [置顶] 奥利奥聊天机器人1.0【原创】【源码附注释】【C语言】
- 会议安排问题 南阳理工
- c语言写的售货机,源码虽少,作用很大
- 三星uboot1.1.6源码分析——start.s(9)--C语言部分(3)
- 纯C语言写的贪吃蛇源码
- c语言写的推箱子源码,非常适合新手学习
- 华为面试题:扑克牌大小 C语言源码
- C编程获取指定网卡网络数据包并分析(附C语言源码)
- C语言标准库 qsort bsearch 源码实现
- C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码
- 用C语言实现病毒源码与解毒程序设计
- 基于Easyx的文本显示器的C语言实现——源码+实验报告
- 即时通讯IM源代码+视频会议全套VC源码公布出售 即时通讯IM源代码+视频会议全套VC源码公布出售 语言:C/C++ 编程语言设计,VC++开发平台 产品包含完善的视频会议系统,是一套集即时通讯和
- [置顶] C语言做的接鸡蛋小游戏(附源码注释)【原创】