選擇排序算法
#include<stdio.h>
int main()
{
int a[10]={23,10,7,9,15,88,65,50,3,40};
int max=0,sub,temp;
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=10-i;j++)
if(a[i-1]-a[i+j-1]>max)
{
max=a[i-1]-a[i+j-1];
sub=i+j-1;
}
temp=a[i-1];
a[i-1]=a[sub];
a[sub]=temp;
max=0;
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
return 0;
}
選擇排序不知道錯在哪裡,求解,運行得不到正確答案
int a[10]={23,10,7,9,15,88,65,50,3,40};
int max=0,sub,temp;
int i,j;
for(i=0;i<=9;i++)
{
sub=i;
for(j=i+1;j<=9;j++)
if(a[i]-a[j]>max)
{
max=a[i]-a[j];
sub=j;
}
temp=a[i];
a[i]=a[sub];
a[sub]=temp;
max=0;
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);