Skip to content

Instantly share code, notes, and snippets.

@deque-blog
Created December 23, 2016 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deque-blog/c0f03af77a93f3b3095a061f76ad8248 to your computer and use it in GitHub Desktop.
Save deque-blog/c0f03af77a93f3b3095a061f76ad8248 to your computer and use it in GitHub Desktop.
template<typename ForwardIterator>
void stable_sort_forward(ForwardIterator first, ForwardIterator last)
{
using Range = std::pair<ForwardIterator, ForwardIterator>;
using Counter = binary_counter<merger<ForwardIterator>, Range>;
Counter c { merger<ForwardIterator>{}, { last, last } };
for (; first != last; ++first) {
c.add(std::make_pair(first, std::next(first)));
}
auto result = c.reduce();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment