为三个整数排序的最优算法
编写最优算法,从小到大依次输出顺序读入的三个整数。要求:
最佳情况:比较2次,无移动;
最差情况:比较3次,7次移动
程序代码:#include <stdio.h>
int main(void)
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a < b && b < c) // abc
printf("%d %d %d\n", a, b, c);
else if (a < c && c < b) // acb
printf("%d %d %d\n", a, c, b);
else if (b < a && a < c) // bac
printf("%d %d %d\n", b, a, c);
else if (b < c && c < a) // bca
printf("%d %d %d\n", b, c, a);
else if (c < a && a < b) // cab
printf("%d %d %d\n", c, a, b);
else // cba
printf("%d %d %d\n", c, b, a);
return 0;
}
程序代码:#include <stdio.h>
int main(void)
{
int a=115;
int b=525;
int c=212;
int max1=0,max2=0,max3=0;
max1=(a>b?a:b)>c?(a>b?a:b):c;
max3=(a<b?a:b)<c?(a<b?a:b):c;
max2=(a==max1?b:a)==max3?c:(a==max1?b:a);
printf("max1=%d max2=%d max3=%d \n",max1,max2,max3);
return 0;
}这算比较几次啊