算法第四章作业
1. 贪心算法总是做出在当前看来是最好的选择,并不是从整体最优上考虑,所做的选择只是在某种意义上的局部最优选择。所以贪心算法适用的前提是局部最优解能够导致全局最优解。
2.贪心算法——会场安排问题

问题分析:要使会场安排的数量最少,就要在使用了的会场上尽量安排更多的活动,可以考虑的贪心算法策略有最早开始、最晚开始、最早结束、最短时间,此问题要采取最早开始的策略。
#代码详情:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int s[100];
int f[100];
int n;
void GreedySelector(int *s,int *f){
int count=0;
sort(s,s+n);
sort(f,f+n);
int j=0;
for(int i=0;i<n;i++){
if(s[i]<f[j]){
count++;
}
else{
j++;
}
}
cout<<count<<endl;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>s[i]>>f[i];
}
GreedySelector(s,f);
return 0;
}
3. 所遇到的问题与结对编程情况
贪心算法问题相对与动态规划问题较简单,在编程过程中遇到的问题较少。在与莞怡结对编程的过程中,在讨论之前,我们会先独立思考,遇到有疑问的地方才讨论,想出最好的算法,上周实验课的三道题目,第一道比较简单,但是我在数组上出了一点问题,数组的大小没有把握好,不过很快就理解了问题及解决方法。第二道题由于我们两个理解错了题意,在课堂上没有解决此问题。

浙公网安备 33010602011771号