#include <iostream>
int find_smallest(int a[], int l, int r){
if (l ==r)
return a[l];
else if (l+1 == r)
return ((a[l] < a[r]) ? a[l] : a[r]);
else {
int m = (l + r) / 2;
int d1 = find_smallest(a, l, m);
int d2 = find_smallest(a, m+1, r);
return ((d1 < d2) ? d1 : d2);
}
}
int main(){
int a[] = {5,3,2,5,6,7};
std::cout << find_smallest(a, 0, 5);
}
This is a code to find the smallest element in an array. I have taken a 6 element array just for testing purpose but how should I analyze the Big-O complexity of the program?