/*选择排序算法*/
#include
int main(void)
{
int sz[10]={9,8,12,1,2,3,6,68,99,88};
int min=sz[0];
for(int i=0;i<10;i++)
{
int jl=i;
min=sz[i];
for(int j=i+1;j<10;j++)
{
if(sz[i]<min)
{
min=sz[j];
jl=j;
}
}
int t=sz[i];
sz[i]=min;
sz[jl]=t;
}
for(int k=0;k<10;k++)
{
printf("a=%d\n",sz[i]);
}
return 0;
}
13行的sz[i]改成sz[j]就行了
最好能把注解也写上,谢谢各位!
int len = sizeof(sz)/sizeof(sz[0]); 求数组元素个数;
选择排序的思想 是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
#include <stdio.h>
int main(void)
{
int sz[10]={9,8,12,1,2,3,6,68,99,88};
int len = sizeof(sz)/sizeof(sz[0]);
for(i=0;i<len-1;i++)
{
for(j=i+1;j<len;j++)
{
if(sz[i]<sz[j])
{
temp = sz[i];
sz[i]=sz[j];
sz[j]=temp;
}
}
}
for(i=0;i<len;i++)
{
printf("%4d",sz[i]);
}
return 0;
}