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

选择法排序


第2趟 (i =1 ): 13
27 [38 65 j
第3趟 (i =2 ): 13 第4趟 (i =3 ): 13
第 六 章 数 组
27 27 27 27 27
[65 38 38 38 38
第5趟 (i =4 ): 13 第6趟 (i =5 ): 13 13
高 级 语 言 程 序 设 计
输入10个数给a[0] 到 a[9] for i=0 to 8 k=i for j =i+1 to 9 真 k=j i != k 真 a[i]⇔a[k] a[j]<a[k]
第 六 章 数 组
(3)重复上述过程,共经过9趟排序后,排序结束
高 级 语 言 程 序 设 计
Hale Waihona Puke k 第1趟 (i = 0): [ 49 13
k 38 j k 65 j 97 j 76 j
k 13 49 j 27 ] j k 97 j 97 [97 49 49 49 76 j 76 76 [76 65 65 49 j 49 49 97 [97 76 38 ] 27 j 38 ] 65 ] 65 ] 76 ] [97 ]
高 级 语 言 程 序 设 计
例6-4**. 用简单选择法对10个数排序 排序过程: (1)首先通过9次比较,从10个数中找出最小的, 将它与 ˋ 第1个数交换—第一趟选择排序,结果最小的数被安ˋ ˋˊ 置在第1个元素位置上 (2)再通过8次比较,从剩余的9个数中找出次小的数,将 ˋˊ 它与第2个数交换—第二趟选择排序
第 六 章 数 组
输出a[0] 到 a[9]
#include <stdio.h> #define N 10 void main() { int a[N], i, j, k, t; printf("Input %d numbers:“,N); for(i=0;i<N;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<N-1;i++) 假 { k=i; for(j=i+1;j<N;j++) 假 if(a[j]<a[k]) k=j; if(i!=k) { t=a[i]; a[i]=a[k]; a[k]=t;} } printf("The sorted numbers:\n"); for(i=0;i<N;i++) printf("%6d",a[i]); }
相关主题