template<class T>
bool Bubble( T a[], int n) //把数组a[0...n-1]中的最大元素排到最后
{
bool swapped = false;
for( int i = 0; i < n; i++ )
if( a[i] > a[i+1] ) {
Swap( a[i], a[i+1] );
swapped = true;
}
return swapped;
}
template<class T>
void BubbleSort( T a[], int n ) //及时终止的冒泡排序
{
for( int i = n; i > 1 && Bubble(a, i); i--);
}
template<class T>
inline void Swap( T &a, T &b )
{
T temp = a;
a = b;
b = temp;
}