#include "common.h"
//插入排序
template<class Elem>
void InsertSort(Elem arr[], int nStart, int nEnd,
Compare<Elem>& comp = Lower<Elem>(), int nStep = 1)
{
++nEnd; //使nEnd指向最后一位的末尾
for (int x = nStart; x < nEnd; x += nStep)
{
for (int y = x; (y >= nStart) && (comp(arr[y], arr[y - nStep])); y -= nStep)
{
swap(arr, y, y - nStep);
}
#ifdef SORT_DEBUG
Print(arr, 0, 9);
#endif
}
}
//插入排序
template<class Elem>
void InsertSort(Elem arr[], int nStart, int nEnd,
Compare<Elem>& comp = Lower<Elem>(), int nStep = 1)
{
++nEnd; //使nEnd指向最后一位的末尾
for (int x = nStart; x < nEnd; x += nStep)
{
for (int y = x; (y >= nStart) && (comp(arr[y], arr[y - nStep])); y -= nStep)
{
swap(arr, y, y - nStep);
}
#ifdef SORT_DEBUG
Print(arr, 0, 9);
#endif
}
}