贪心算法简单实现

来源:互联网 发布:如何克服拖延症 知乎 编辑:程序博客网 时间:2024/06/10 17:49

没有排序,因为考虑到排序要花的时间也挺多,不比这种直接寻找法快多少。

void select( int s[], int f[], int f0)

{
int ff = 18+1;//the biggest finishing time+1
int flag = 0;
for( int i=0; i<15; i++ )
if( s[i]>=f0 && f[i]<ff )
{
flag = i;
ff=f[i];
}
if( ff==18+1 )//finish
{
cout << "finished" << endl;
return;
}
cout << flag << ' ';
select( s, f, ff );//recursive
}


int main()
{
int s[15] = { 0, 0, 1, 2, 9, 1, 5, 12, 7, 5, 8, 8, 9, 10, 16 };//time of starting 
int f[15] = { 1, 2, 5, 3, 12, 8, 6, 13, 12, 13, 18, 11, 11, 14, 18 };//time of finishing
select( s, f, 0);
return 0;
}
原创粉丝点击