0
void main()
{
char name[5][10],temp[10];
int i,j;
for(i=0;i<5;i++)
{
printf("\nEnter the name of student:");
scanf("%s",name[i]);
}
for(i=0;i<(5-1);i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(name[i],name[j])>0)
{
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
printf("\n the name of student is:");
for(i=0;i<5;i++)
{
printf("\n%s",name[i]);
}
getch();
}
我找不出插入排序和選擇排序之間的區別..是這個代碼下面的選擇算法或插入?這是一個選擇排序或插入排序?請給我正確的方向
谷歌冒泡排序。 – 2013-04-10 10:11:13
只需要注意 - 我想交換操作由3個'strcpy'組成(如上所述)會導致相當慢的排序(不是說這種排序速度足夠快,以至於它在實踐中用於開始,但這就是點)。通常的想法是交換指針(除非你正在處理基元)。 – Dukeling 2013-04-10 10:15:03
@Armin:這不是一個冒泡排序。請注意,他比較/交換非連續元素。 – comocomocomocomo 2013-04-10 10:54:33