选择排序
首先找出最大的元素,把它移到a[n-1],然后在余下的n-1个元素中找出最大的元素,把它移到a[n-2],如此进行下去,直到最后一个元素。
template<class T>
void selectionSort(T a[], int n)
{
// 及时终止的选择排序
bool sorted = false;
for(int size = n; !sorted && size > 1; size--)
{
int indexOfMax = 0;
sorted = true;
// 查找最大元素
for(int i = 1; i < size; i++)
{
if(a[indexOfMax] <= a[i])
indexOfMax = i;
else
sorted = false;
}
// 交换
T temp = a[indexOfMax];
a[indexOfMax] = a[size-1];
a[size-1] = temp;
}
}