简单选择排序原理是从每次排序都选择出剩余元素中最小或最大的,然后与前面的第一层循环i的当前位置元素进行交换,因此设置了一个min和minj变量来记录最小值和最小值的下标。
#include<stdio.h>
void sel(int a[],int n)
{
int i,j,minj,min,temp;
for(i=0; i<n; i++)
{
min=a[i];
minj=i;
for(j=i; j<n; j++)
{
if(min>a[j])
{
min=a[j];
minj=j;
}
}
temp=a[i];
a[i]=min;
a[minj]=temp;
}
}
int main()
{
int n,i;
int a[1000];
while(~scanf("%d",&n))
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
sel(a,n);
for(i=0; i<n; i++)
{
if(i<n-1)
printf("%d ",a[i]);
else
printf("%d \n",a[i]);
}
}
return 0;
}