您的位置:首页 > 其它

[Dynamic Programming]Recursion/Non-recursion to find the max number

2013-05-13 16:03 471 查看
//国际大学生程序设计竞赛例题解(三)

 //动态规划 

//Page107

Recursion Version

#include <iostream>
#include <cstdio>

using namespace std;

int data[100];

int getMax(int left, int right)
{
if(left == right)
{
return data[left];
}

int t1 = getMax(left, (left + right) / 2);
int t2 = getMax((left + right) / 2 + 1, right);
return t1 >= t2 ? t1 : t2;
}

int main()
{
int n;
cin >> n;
for(int i = 1; i < n; i++)
{
cin >> data[i];
}
cout << getMax(1, n) << endl;
return 0;
}


Non-Recursion Version

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int data[100];

bool cmp(const int& a, const int& b)
{
if(a > b) return true;
else return false;
}

int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> data[i];
}
sort(data, data + n, cmp);
cout << data[0] << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐