例用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第-1个数和第 n个数比较为止 —第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
例 用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止——第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
例 38 38 38 38 13 13 13 13 49 49 49 13 27 27 27 27 65 65 30 30 30 30 38 38 63709 337430770 137130606 490 49 65 朝始关键字 第一趟 第二趟 第三趟 第四趟 第五趟 第六趟 第七趟
例 38 49 65 76 13 27 30 97第一趟 38 49 65 13 27 30 76第二趟 38 49 13 27 30 65第三趟 38 13 27 30 49第四趟 13 27 30 38第五趟 13 27 30第六趟 49 38 65 97 76 13 27 30初始关键字 n=8 38 49 76 9713 972 9730 97 13 76 76 7627 30 13 6527 6530 65 13 13 49 4930 4927 3827 380 38 13 27第七趟
汾 #include <stdio.h Ch6 3.c mainO 输入n个数给a[1]到a[n] int a[lll,i,j,t; for j=1 to n-1 printf("Input 10 numbers:\n"): for(i=1;i<11;i++) for i=1 to n-] scanf("%d",&a[i]); printf("\n"); 真 ali]-a[i+11 forG=1j<=9:j++) a[i]→a[it1] for(i=1;i<=10-j;i+) if(a[i]>ali+1]) 输出al]到a[n可 t=ali];ali]=a[i+1];afi+1]=t; printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf"%d ",a[i]);
输入n 个数给a[1] 到 a[n] for j=1 to n-1 for i=1 to n-j a[i]>a[i+1] 真 假 a[i]a[i+1] 输出a[1] 到 a[n] #include <stdio.h> main() { int a[11],i,j,t; printf("Input 10 numbers:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(j=1;j<=9;j++) for(i=1;i<=10-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"); for(i=1;i<11;i++) printf("%d ",a[i]); }
例用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换一第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换一第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束
例 用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换—第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束
k k k 例 i=1 初始: 13 38 65 76 49 27] k k =2一趟: 13 27 65 97 76 49 38] 二趟: 13 27 [悼 97 7649 38] 三趟: 13 27 38 [9776 9 65] 四趟: 13 27 38 49 [76 97 65] 五趟: 13 2738 49 65 [9776] 六趟: 13 2738496576 [97]
例 初始: [ 49 38 65 97 76 13 27 ] k j i=1 13 49 i=2 一趟: 13 [38 65 97 76 49 27 ] 27 38 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] k k k k j j j j j j j j j j