C语言学习记录1——基于冒泡和选择的疫情分析实验

-冒泡排序法:

冒泡排序的基本逻辑是相邻两数逐个比较,大数(小数)向前,小数(大数)不动,让最大(最小的数)冒顶,再去进行下一轮的比较,由于第一轮的比较已经确定了顶位,后面的比较在剩下的数字里面决出顶位就可以了,所以比较的次数少1;
由此,冒泡由两轮循环控制:外层循环次数决定要进行几轮的登顶赛,等于比较的总数字量减一(因为最后一个数字不需要比较);内层循环进行大赛内部的一一对挑,遍历次数等于剩余数字数减一(因为顶位确定不用再比,相当于拿奖出局了);
两层循环存在关联,即剩余数字数=总数字数-登顶数字数;此关联决定内外循环次数(m,n)的关联关系.
C语言学习记录1——基于冒泡和选择的疫情分析实验_第1张图片

//冒泡排序法
for (m=0;m<19;m++)
{
		for (n=0;n<19-m;n++)
				if(rArray[n+1]>rArray[n])
				{	
					temp=rArray[n+1];
					rArray[n+1]=rArray[n];
					rArray[n]=temp;
				}
}

- 选择排序法(从小到大为例)

选择排序先任意指定第一个值为最值min,然后拿这个数去跟后面的数比较,遇到比它小的数值则min被这个数所取代,遍历一遍,找到最值所在位置(即下标),然后把最值调到最前面;
由于最小值确定,剩下数以此类推进行排序即可;
C语言学习记录1——基于冒泡和选择的疫情分析实验_第2张图片

//选择排序法
	for (i=0;i<20;i++)
	{
		min=i;
		for (j=i+1;j<20;j++)
		{
			if (rArray[min]>rArray[j])
			min=j;
		}
		if (i!=min)
		{
			temp=rArray[min];
			rArray[min]=rArray[i];
			rArray[i]=temp;
		}
	}

你可能感兴趣的:(C语言学习记录)