The answer is based on computing minimum and maximum in pairs of two
say number of elements in even and array is
5 1 2 5 6 8 9 10
than code goes as follows
fun(){
int mn,mx;
if(arr[0]>arr[1]){ mn=arr[1];mx=arr[0];} // 1 comparison for 2 elements
else{ mx=arr[1];mn=arr[0]; }
for(int i=2;i<n;i=i+2){ // picking every pair of element
// we will calculate the minimum and maximum of this pair and then compare with global minimum and maximum hence total of 3 comparisons for a pair
int t_mn,int t_mx;
if(arr[i]>arr[i+1]){ t_mn=arr[i+1]; t_mx=arr[i];} // 1st comparison
else { t_mn=arr[i]; t_mx=arr[i+1];}
if(mx>t_mx) mx=t_mx; // 2nd comparions
if(mn<t_mx) mn=t_mx; // 3rd comparioson
}
cout << mx << " " << mn << endl;
return 0;
}
hence if n is number of elements
than comparisons=1+((n-2)/2)*3
hence in n=100 ans=148
similarly in odd number of elements 1st element will be max as well as min
hence comparisons=((n-1)/2)*3
refer to CLRS book