#include <stdio.h main() 输入n个数给a]到an] { int a[l1]i,j,k,x; printf("Input 10 numbers:\n"); for i=1 to n-1 for(i=1;i<11;i++) k=i scanf("%d"&a[il); for j=i+l to n printf("n")方 for(i=1;i<10;i++) 真 a[j]<a[k] k-i; k-j forG=i+1;j<=10j++) 真 il=k if(a[j]<a[k])k=j; if (i!=k) 台a[k x-a[i];a[i]=a[k];a[k]=x;} 出a[1]到a[n printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d "a[i]);
输入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 假 #include <stdio.h> 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]); }
盛排序 一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 11 33 55 77 99 m>a9] 100 for(i=9;i>=0;i-) a[10]=m i进al>时 it1]=a叫 break a[i+1]=m
一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 排序 11 33 55 77 99 100 44 m >a[9] a[10]=m for(i=9;i>=0;i-) if(a[i]>m) a[i+1]=a[i] break a[i+1]=m
排序 一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 11 33 55 77 99 66 77 99 66 11 33 55
一、已排好序的数组,现输入一个数,按原来的排序插 入到数组中 排序 11 33 55 77 99 66 77 99 66 11 33 55
排序(选择法) for(i=0;i<=n-2,i++) {k=i, 早操排队问题 for(j=i+1;j<=n-1;j++) if(aljl<a[k]) 娄 奚 k=j; 赵 if(k!=i) {m=a[i];a[i=a[k];a[k]=m;}
早操排队问题 张 三 贾 六 赵 一 王 五 李 四 排序(选择法) for(i=0;i<=n-2;i++) {k= i; for(j=i+1;j<=n-1;j++) if(a[j]<a[k]) k=j; if(k!=i) { m=a[i];a[i]=a[k];a[k]=m;} }
用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换 然后比较第二个数与第三个数;依次类推,直至第n-1个数和 第个数比较为止—第一趟冒泡排序,结果最大的数被安 置在最后一个元素位置上 (2)对前-1个数进行第二趟冒泡排序,结果使次大的数被 安置在第n-1个元素位置 (3)重复上述过程,共经过-1趟冒泡排序后,排序结束
用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换; 然后比较第二个数与第三个数;依次类推,直至第n-1个数和 第n个数比较为止——第一趟冒泡排序,结果最大的数被安 置在最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被 安置在第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束