#include <stdlib.h>
template <typename T>
void InsertSort(T iData[], size_t iBegin, size_t iEnd)
{
size_t iCurPos = iBegin+1;
T iCurValue;
size_t p = 0;
while (iCurPos <= iEnd)
{
iCurValue = iData[iCurPos];
p = iCurPos-1;
while (p >= iBegin
&& iData[p] > iCurValue)
{
iData[p+1] = iData[p];
p--;
}
iData[p+1] = iCurValue;
iCurPos++;
}
return;
}