template <typename T>
static void Insert(T array[], int len, bool min2max = true)
{
for(int i=1; i<len; i++)
{
T e = array[i];
int k = i;
for(int j=i-1; (j>=0) && (min2max ? (array[j] > e) : (array[j] < e)); j--)
{
array[j+1] = array[j];
k = j;
}
if( k != i)
{
array[k] = e;
}
}
}
运行结果如下: