1:先选则第一个数,与其它数进行比较,把最小的放在数组的第一个位置及s[0]处。
2:再从第二个数开始往后比较,把最小的放在第二位。
3:这样一直到最后两个比较完后,就以升序排列好了。
4:例如:5 7 3 4 2
(1):在这五个数中拿出第一个数,作为初始数据,通过与其后面的数据比较,选出最最小的,与第一位的数,交换位置为:
2 7 3 4 5
(2):再从第二个数开始,通过与其后面的数据的比较选出最小的,与第二位的数进行位置得:
2 3 7 4 5
(3):再从第三个数开始,通过与其后面的数据的比较选出最小的,与第三位的数进行位置交换得:
2 3 4 7 5
(4):再从第四个数开始,通过与其后面的数据的比较选出最小的,与第四位的数进行位置交换得:
2 3 4 5 7
5:代码实现:
#include<stdio.h>
void main()
{
int x,y,temp,min;
int s[5]={5,7,3,4,2};
for(x=0;x<4;x++)
{
min=x;
for(y=x+1;y<5;y++)
{
if(s[min]>s[y])
{
min=y;
}
}
if(min!=x)
{
temp=s[min];
s[min]=s[x];
s[x]=temp;
}
}
int a=0;
for(a ;a<5;a++)
{
printf("%d\n",s[a]);
}
}
6:程序中用到两个for循环语句
(1):第一个for循环是确定位置的,该位置是存放每次从待排序数列中经选择和交换后所选出的最小数。
(2):第二个for循环是实现将确定位置上的数与后面待排序中的数进行比较的。