template
<
class
T
>
void insertion_sort(T * Array, int Size, bool Ascending = true )
{
assert(Array != NULL);
assert(Size >= 2);
int i, temp;
if (Ascending)
{
for (i = 1; i < Size; i++)
{
temp = Array[i];
while (temp < Array[i-1] && i > 0)
{
Array[i] = Array[i-1];
i--;
}
Array[i] = temp;
}
}
else
{
for (i = 1; i < Size; i++)
{
temp = Array[i];
while (temp > Array[i-1] && i > 0)
{
Array[i] = Array[i-1];
i--;
}
Array[i] = temp;
}
}
}
void insertion_sort(T * Array, int Size, bool Ascending = true )
{
assert(Array != NULL);
assert(Size >= 2);
int i, temp;
if (Ascending)
{
for (i = 1; i < Size; i++)
{
temp = Array[i];
while (temp < Array[i-1] && i > 0)
{
Array[i] = Array[i-1];
i--;
}
Array[i] = temp;
}
}
else
{
for (i = 1; i < Size; i++)
{
temp = Array[i];
while (temp > Array[i-1] && i > 0)
{
Array[i] = Array[i-1];
i--;
}
Array[i] = temp;
}
}
}