C (GCC), 63 60 bytes
-3 bytes thanks to @Juan Ignacio Díaz
f(v,n,b,j)int*v;{for(b=j=0;n+~j;)b|=v[j/2]<v[++j];return!b;}
Original note of the 63 bytes version:
I know 2 bytes can be saved by inverting the meaning of the values
0
and1
, but I prefer to keep it this way.