Divide And Conquer

A recursive algorithm to traverse through an array and find maximum value.

main.cpp
1#include <iostream>
2using namespace std;
3
4int divide_and_conquer(int *field, int lower_range, int upper_range) {
5    int l_max, u_max;
6    
7    if(lower_range == upper_range) return field[lower_range];
8    
9    int middle = (lower_range + upper_range) / 2;
10    
11    l_max = divide_and_conquer(field, lower_range, middle);
12    u_max = divide_and_conquer(field, middle + 1, upper_range);
13    
14    if(l_max > u_max) return l_max;
15    else return u_max;
16}
17
18int main() {
19    srand(time(0));
20    int field[11];
21    
22    for(int i = 1; i < 11; i++) {
23        field[i] = rand() % 50;
24        cout << field[i] << " ";
25    }
26    cout << endl;
27    
28    cout << "Max: " << divide_and_conquer(field, 1, 10) << endl;
29    
30    return 0;
31}