logo资料库

C++贪心算法实现活动安排问题(实例代码).pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
贪心算法实现活动安排问题(实例代码 实例代码) C++贪心算法实现活动安排问题 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。这篇文章主要介绍了 C++贪心算法实现活动安排问题,需要的朋友可以参考下 贪心算法 贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考 虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前 的过程不会影响以后的状态,只与当前状态有关。 具体代码如下所示: #include #include #include #include #include #include using namespace std; struct activity { int no; int start; int finish; }; bool cmp(const activity &x, const activity &y) { return x.finish } int greedySelector(int m,int solution[],struct activity activity[]){ int number = 1; solution[0] = 1; int i,j = 0,counter = 1; for(i = 1;i < m ;i++) { if(activity[i].start >=activity[j].finish) { solution[i] = 1; j = i; counter++; } else solution[i] = 0; } cout << "The amount of activities is:"<> t; fout.open("activity.txt",ios::app); if(!fout){ cerr<<"Can not open file 'activity.txt' "<
m = 1 + rand()%100000; fout< 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 << cost << endl; cout << "\nThe running time is:" << cost << " s" << endl; } fout.close(); cout << endl << endl; cout << "Success!" << endl; return 0; } 总结总结 以上所述是小编给大家介绍的C++贪心算法实现活动安排问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编 会及时回复大家的。在此也非常感谢大家对我们网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
分享到:
收藏