#include<iostream>
using namespace std;
const int N = 101;
int a[N];
int find_max(int l, int r, int q[])
{
int mid = l + r >> 1;
if (l == r) return q[l];
int left_max = find_max(l, mid, q);
int right_max = find_max(mid + 1, r, q);
if (left_max >= right_max) return left_max;
else return right_max;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
int max = find_max(0, n - 1, a);
cout << "该数列的最大值为:";
cout << max;
return 0;
}
#时间复杂度分析:该算法采用了分治递归思想,平均复杂度为O(nlog2(n))
C++求最大数
最新推荐文章于 2025-03-03 20:41:18 发布