template <typename T>
void SelectSort(T iData[], size_t iBegin, size_t iEnd)
{
while(iBegin < iEnd)
{
size_t iMinPos = iBegin;
size_t p = iBegin + 1;
while(p <= iEnd)
{
if (iData[p] < iData[iMinPos])
iMinPos = p;
p++;
}
if (iMinPos != iBegin)
{
T iTmp = iData[iMinPos];
iData[iMinPos] = iData[iBegin];
iData[iBegin] = iTmp;
}
iBegin++;
}
return;
}