#includeusing 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))



