简单选择排序函数模板

选择排序的基本思想:每次从待排序序列中选择一个最小的元素,顺序排在已排序列的最后,直至全部排完

在选择类排序方法中,根据从待排序序列中选择元素的方法不同,分为不同的选择排序方法,其中最简单的是通过顺序比较找出待排序序列中最小的元素,称为简单选择排序

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]交换
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值