例用简单选择法对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趟排序后,排序结束
例曰1初始:国3386s9776191271 i=2一趟:13[276597764938 二趙:132716597764938 三趟:132738197764965 四趟:13273849[769765 五趙:132738496597761 六趟:132738496576[97
例 初始: [ 49 38 65 97 76 13 27 ] 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 ] j j j j j j j j j j
maint i int a[11,i,j, k, X: 输入n个数给a[1到amn printf( Input 10 numbers: In); for i=l to n-1 for(i=l; i<ll; i++) scanf(%d", &aliD k=i printf(n; for j=i+l to n for(i=1;i10;i++) 真11akl {k=i; for(j=i+1;j<=10:j++) k=i if(aj<ak kj; 真 i=k if(i=k al[il→>a[k] ixa;a=alk; a[k=x; 3 输出a[到a|n printf( The sorted numbers: In for(i=l; i<1l; i++) printf("ood " aiD
输入n 个数给a[1] 到 a[n] for i=1 to n-1 for j=i+1 to n 真 a[j]<a[k] 假 k=j 输出a[1] 到 a[n] k=i a[i]a[k] 真 i != k 假 main() { int a[11],i,j,k,x; printf("Input 10 numbers:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(i=1;i<10;i++) { k=i; for(j=i+1;j<=10;j++) if(a[j]<a[k]) k=j; if(i!=k) { x=a[i]; a[i]=a[k]; a[k]=x;} } printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }