142 142 124 第五遍:
1 4 2 1 4 2 1 2 4 第五遍:
12 2 对上面的数组共比较了5遍,是比较次数最多的情况, 而且每一遍都有交换事件发生。但对有些数组,个元 素不一定要比较n-遍,也许可以提早结束。如有数组: 214397,进行第一遍比较:
1 2 1 2 对上面的数组共比较了5遍,是比较次数最多的情况, 而且每一遍都有交换事件发生。但对有些数组,n个元 素不一定要比较n-1遍,也许可以提早结束。如有数组: 2 1 4 3 9 7,进行第一遍比较:
214397 124397 124397 123497 12349 7 123479
2 1 4 3 9 7 1 2 4 3 9 7 1 2 4 3 9 7 1 2 3 4 9 7 1 2 3 4 9 7 1 2 3 4 7 9
源程序: #define N 10 #include <stdio.h> main() { int i,j,t,a[N]; for (i=0;i<=N-1;i++) scanf("%d",&a[i]); printf("In not change array \n")
源程序: #define N 10 #include <stdio.h> main() { int i,j,t,a[N]; for(i=0;i<=N-1;i++) scanf("%d",&a[i]); printf("\n not change array :\n");
for(i=0;i<=N-1;i+) printf ("%3d",a[i]); printf("\n"); for(i=0,j=N-1;i=N/2-1;i+,j-) {t=a[i]; a[i]=a[j]; a[j]=t; printf("In change array \n);
for(i=0;i<=N-1;i++) printf("%3d",a[i]); printf("\n"); for(i=0,j=N-1;i<=N/2-1;i++,j-) { t =a[i]; a[i]=a[j]; a[j]=t; } printf("\n change array :\n");