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