Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename It>
- It find_minimum(It begin, It end) {
- if(begin == end) return end;
- auto l = begin;
- auto r = std::prev(end);
- while(l != r) {
- auto m = l;
- auto middle = std::distance(l, r) / 2;
- std::advance(m, middle);
- auto n = std::next(m);
- if(*m < *n) {
- r = m;
- } else {
- l = n;
- }
- }
- return l;
- }
- int main(int argc, char** argv) {
- std::vector<T> arr = { 4, 3, 2, 1, 5, 6, 7 };
- auto res = find_minimum(arr.begin(), arr.end(), 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement