当前位置:文档之家› 选择法排序

选择法排序


程序5:
#define N 10 #include<stdio.h> void main( ) {int array[N],i,j,k,t; clrscr(); printf("Input %d number:\n",N); for(i=0;i<N;i++) scanf("%d",&array[i]); printf("\n"); for(i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++) if( array[j]<array[k] )k=j; if( i!=k ) { t=array[k]; array[k]=array[i]; array[i]=t; } }
四、程序设计举例
程序5:对数组中的N个整数排序,按照从小到大的顺 序输出。 选择法思路: 先找出第0~N-1个数中最小的数,将其与第0个元素 互换; 接着不再考虑第0个元素,找到剩余第1~N-1个数中 最小的数,将其与第1个元素互换; …… 最后寻找第N-2~N-1个数中最小的数,将其与第N-2 个元素互换; 此过程一共循环进行了N-1次。
宏定义,就是用N代替常数10
printf("The sorted numbers:\n"); for(i=0;i<N;i++) printf("%5d,",array[i]); printf(&#组,并 将每一行的最小值显示出来。
#define N 6 #include<stdio.h> void main() { int a[N][N],m[N],i,j; printf("Input numbers:\n"); for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); for(i=0;i<N;i++) { m[i]=a[i][0]; for(j=1;j<N;j++) if(a[i][j]<m[i]) m[i]=a[i][j]; } printf("Min are:"); for(i=0;i<N;i++) printf("%d ",m[i]); }
相关主题