冒泡法排序(续) 16 从上述过程可以看到:n个数要比较n-1趟,而 在第j趟比较中,要进行n-j次两两比较。 for(i=0; i<N; i++) 输入a for〔=1;j<N;j++) for (i=0; K<N-j; 1++) ai>ai+1 F a与a[计1交换 输出a[0-aN-1l 冒泡法排序 2021/2/21
2021/2/21 16 冒泡法排序 (续) 从上述过程可以看到:n个数要比较n-1趟,而 在第j趟比较中,要进行n-j次两两比较。 冒泡法排序 for (i=0; i<N; i++) 输入a[i] for (j=1;j<N; j++) for (i=0; i<N-j; i++) a[i]>a[i+1] T F a[i]与a[i+1]交换 输出a[0]~a[N-1]
#definen 6 maino f int a ni 程序运行情况如下: int i,j,t; 3756804 for (i=0; i<N; i++) 035678 scanf(%od", &aiD for(j=1;j=N-1;j++)/控制比较的趟数 for(i=0;i<N-j;i++)/两两比较的次数 if(ai> i+lD itaiiall=ai+l;ai+1=t;3 printf("The sorted numbers: n);
2021/2/21 17 #define N 6 main( ) { int a[N]; int i,j,t; for (i=0; i<N; i++) scanf("%d",&a[i]); for (j=1; j<=N-1; j++) /*控制比较的趟数 */ for (i=0; i<N-j; i++) /*两两比较的次数 */ if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; } printf("The sorted numbers: \n"); …… } 程序运行情况如下: 3 7 5 6 8 0 0 3 5 6 7 8
例65】选择法排序(从小到大)。 18 以6个数:3、7、5、6、8、0为例。 思蹄: 第一趟:将第一个数依次和后面的数比较,如 果后面的某数小于第一个数,则两个数交换,比较 结束后,第一个数则是最小的数。 第二趟:将第二个数依次和后面的数比较,如 果后面的某数小于第二个数,则两个数交换,比较 结束后,第二个数则是次小的数; 2021/2/21
2021/2/21 18 以6个数:3、7、5、6、8、0为例。 思路: 第一趟:将第一个数依次和后面的数比较,如 果后面的某数小于第一个数,则两个数交换,比较 结束后,第一个数则是最小的数。 第二趟:将第二个数依次和后面的数比较,如 果后面的某数小于第二个数,则两个数交换,比较 结束后,第二个数则是次小的数;…… 。 【例6.5】选择法排序(从小到大)
(例65选择法排序(续) 19 for(0; K<N; 1++) 输入a[i for(=0;j<N-1;j+ for(=j+1;i<N;计++) alal ai与a交换 输出a[0}aN-1] 图63选择法排序○ 2021/2/21
2021/2/21 19 【例6.5】选择法排序(续) 图6.3 选择法排序 for (i=0; i<N; i++) 输入a[i] for (j=0; j<N-1; j++) for (i=j+1; i<N; i++) a[j]>a[i] T F a[j]与a[i]交换 输出a[0]~a[N-1]