C++贪心算法实现活动安排问题(实例代码)
贪心算法
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
具体代码如下所示:
#include#include #include #include #include #include usingnamespacestd; structactivity { intno; intstart; intfinish; }; boolcmp(constactivity&x,constactivity&y) { returnx.finish } intgreedySelector(intm,intsolution[],structactivityactivity[]){ intnumber=1; solution[0]=1; inti,j=0,counter=1; for(i=1;i =activity[j].finish) { solution[i]=1; j=i; counter++; } else solution[i]=0; } cout<<"Theamountofactivitiesis:"< >t; fout.open("activity.txt",ios::app); if(!fout){ cerr<<"Cannotopenfile'activity.txt'"< activity[i].start)break; } } QueryPerformanceFrequency(&nFreq); QueryPerformanceCounter(&nBeginTime); sort(activity,activity+m,cmp); greedySelector(m,solution,activity); QueryPerformanceCounter(&nEndTime); cost=(double)(nEndTime.QuadPart-nBeginTime.QuadPart)/(double)nFreq.QuadPart; fout< 总结
以上所述是小编给大家介绍的C++贪心算法实现活动安排问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。