看下“选择排序”这两段有什么区别??

来源:百度知道 编辑:UC知道 时间:2024/06/03 18:15:21
两个都是我自己编写的,一个正确,一个错误,前面的是正确的,后面错误的,请问后面的错在哪??
(1)for(i=0;i<5;i++)
{ min=i;
for(j=i+1;j<5;j++)
if(a[min]>a[j])min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
}
(2)for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
min=i+1;
if(a[min]>a[j])min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
}

(1)for(i=0;i<5;i++)
{ min=i;
for(j=i+1;j<5;j++) {
if(a[min]>a[j])
{min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
}
}
{
(2)for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++) {
min=i;
if(a[min]>a[j])
{min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
}
}
}

后面的那个差个大括号,还有就是a[0]这个元素根本就没有参与到排序之中,除加{}外还应把min=i+1改成min=i
2)for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
min=i;
if(a[min]>a[j])min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
}
}