#ifndef _INSERTIONSORT_H_
#define _INSERTIONSORT_H_
#include <iterator>
template <typename RanIt>
void InsertionSort(RanIt first, RanIt last)
{
RanIt j;
typename std::iterator_traits<RanIt>::value_type key;
for (RanIt i = first; ++i < last; *j = key)
{
key = *i;
for (j = i; j > first && key < *(j - 1); ++j)
*j = *(j - 1);
}
}
#endif
#define _INSERTIONSORT_H_
#include <iterator>
template <typename RanIt>
void InsertionSort(RanIt first, RanIt last)
{
RanIt j;
typename std::iterator_traits<RanIt>::value_type key;
for (RanIt i = first; ++i < last; *j = key)
{
key = *i;
for (j = i; j > first && key < *(j - 1); ++j)
*j = *(j - 1);
}
}
#endif