Easy C++ solution
Considering the first element of the vector as the minimum value, we start the binary search.\nNow, if v[mid] < min it means the right side of mid is sorted and
Considering the first element of the vector as the minimum value, we start the binary search.\nNow, if ```v[mid] < min``` it means the right side of ```mid``` is sorted and the minimum value must be at the left side or ```mid``` is the minimum value. So we set ```min = v[mid];``` and continue searching on the left side.\nAnd if not then it means the left side of  ```mid``` is sorted and we need to search on the rights side.\n\n```\nclass Solution {\npublic:\n    int findMin(vector<int>& v) \n    {\n        int min = v[0];\n        int low = 0;\n        int high = v.size() - 1;\n        while(low <= high)\n        {\n            int mid = low + (high - low) / 2;\n            if(v[mid] < min)\n            {\n                min = v[mid];\n                high = mid - 1;\n            }\n            else\n                low = mid + 1;    \n        }\n        return min;\n    }\n}\n```
['Binary Tree']