当前位置:   article > 正文

贪心算法之活动安排问题_活动安排问题的贪心算法代码

活动安排问题的贪心算法代码

前言

最近时间还是比较紧张的,对于算法这一块,网上也有好多大神写了不少这样的文章,我有时候不明白了,看不懂课本,就看看别人写的东西,看得多了,也就懂了一些什么。所以这里,就不再详细的说明活动安排问题的内容,直接上代码。其实书上的算法看明白了,写代码也很轻松的,关于有些衔接部分就需要有更深的领悟。

代码

关于本程序,之前用C语言写了一个,但是不是很方便,因为算法中用到的true false bool类型,有点麻烦,所以我感觉对于算法的实现用c++会比较方便吧。这个看个人喜好,喜欢C语言的就坚持,反正都能解决问题。
C++代码

  1. #include <iostream>
  2. using namespace std;
  3. void GreedSelector(int n,int s[],int f[],bool A[]);
  4. const int n = 11;
  5. int main()
  6. {
  7. int s[12]={0,1,3,0,5,3,5,6,8,8,2,12},f[12]={0,4,5,6,7,8,9,10,11,12,13,14};
  8. bool A[n+1];
  9. GreedSelector(n,s,f,A);
  10. cout<<"最大相容活动安排为:"<<endl;
  11. for(int i=1;i<=n;i++)
  12. {
  13. if(A[i])
  14. {
  15. cout<<"["<<i<<"]:"<<"("<<s[i]<<","<<f[i]<<")"<<endl;
  16. }
  17. }
  18. return 0;
  19. }
  20. void GreedSelector(int n,int s[],int f[],bool A[])
  21. {
  22. A[1]=true;
  23. int j=1;
  24. for (int i=2;i<=n;i++)
  25. {
  26. if(s[i]>=f[j])
  27. {
  28. A[i]=true ;
  29. j=i;
  30. }
  31. else
  32. {
  33. A[i]=false;
  34. }
  35. }
  36. }
  37. C 代码
  38. #include <stdio.h>
  39. #include <stdlib.h>
  40. typedef int bool;
  41. #define true 1
  42. #define false 0
  43. int GreedSelector(int n,int s[],int f[],bool A[])
  44. {
  45. A[1]=true;
  46. int i,j=1,count=1;
  47. for (i=2;i<=n;i++)
  48. {
  49. if(s[i]>=f[j])
  50. {
  51. A[i]=true ;
  52. j=i;
  53. count++;
  54. }
  55. else A[i]=false;
  56. }
  57. return count;
  58. }
  59. int main()
  60. {
  61. int i,n=11;
  62. int p;
  63. int s[12]={0,1,3,0,5,3,5,6,8,8,2,12},f[12]={0,4,5,6,7,8,9,10,11,12,13,14};
  64. bool A[12];
  65. //printf("输入节目数:\n");
  66. //scanf("%d",&n);
  67. /*printf("请依次输入节目的开始和结束时间\n");
  68. for(i=0;i<n;i++)
  69. {
  70. scanf("%d %d",&s[i],&f[i]);
  71. }*/
  72. p=GreedSelector(n,s,f,A);
  73. printf("安排的节目个数为:%d\n",p);
  74. printf("节目的选取情况为(0表示不选 1表示选取):\n");
  75. for(i=1;i<=n;i++)
  76. printf("%d ",A[i]);
  77. printf("\n");
  78. return 0;
  79. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/298069
推荐阅读
相关标签
  

闽ICP备14008679号