#include<stdio.h> int main() { int a[3]; int i, j, t; for (i = 0; i < 3; i++) scanf("%d", &a[i]); for(j=0;j<2;j++) for(i=0;i<2-j;i++) if (a[i] > a[i + 1]) { t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; } for (i =0; i<3; i++) printf("%d\t", a[i]); return 0; }
原理如下:
显而易知,共有六个数,在第一趟排序时,需要进行5次两两比较;在第二趟,则需进行4次比较;以此类推,在最后一趟时(第五趟),只需比较1次。因此,得出结论:若有n个数,则要进行n-1趟比较,在第一趟要进行n-1两两比较,在第j趟则要进行n-j次比较。