《跬步算法》选择排序

一、算法思想:
        从整个线性表中选择最小的那个元素,然后将这个最小的元素放到表的最前面或者最后面(根据排序的升降序)。然后对剩下的子表采用相同方法,直到表空。
二、实现步骤:
       1、判断数组的有效性
       2、初始化一个临时变量“temp”交换时存放交换值,初始化一个整型变量“k”作为指向数组最小值的下标
       3、第一个子表,从中找到最小值,并将该最小值的下标值传给k
       4、跳出内循环,将最小值a[k]与数组第一个元素互换
       5、重复3、4步骤

三、详细函数代码如下:

void SelectSort(int a[],int length)
{
	//step1-------------------------------
	if (NULL == a || 0 == length)
	{
		cout<<"Invalid array!"<<endl;		
		return;
	}

	//step2-------------------------------
	int temp = 0,k = 0;

	//step5-------------------------------
	for (int i=0; i<length; i++)
	{

		//step3-----------------------
		k = i;
		for (int j=i+1; j<length; j++)
		{
			if (a[j]<a[k])
			{
				k = j;
			}
		}
                
		//step4-----------------------
		temp = a[k];
		a[k] = a[i];
		a[i] = temp;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值