选择排序的基本思想:每次从待排序序列中选择一个最小的元素,顺序排在已排序列的最后,直至全部排完
在选择类排序方法中,根据从待排序序列中选择元素的方法不同,分为不同的选择排序方法,其中最简单的是通过顺序比较找出待排序序列中最小的元素,称为简单选择排序
template<class T>
void mySwap(T& x, T& y) //辅助函数:交换x和y的值
{
T temp = x;
x = y;
y = temp;
}
template<class T>
void selectionSort(T a[], int n)
{
for (int i = 0; i < n - 1; i++)
{
int leastIndex = i; //最小元素的下标初值设为i
for (int j = i + 1; j < n; j++) //在元素a[i+1]到a[n-1]中逐个比较出最小的值
{
if (a[j] < a[leastIndex])
leastIndex = j; //始终记录当前找到的最小值的下标
}
mySwap(a[i], a[leastIndex]); //将这一趟找到的最小元素与a[i]交换
}
}