C语言选择法排序诠释

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0867421359 0687421359
Min=4
Min=5
Min=6
Min=3
Min=4
Min=5 Min=6 Min=3 Min=4 Min=5 Min=6 Min=7
t=a[1],a[1]=a[4]=4 a[4]=a[1]=6 t=a[1],a[1]=a[5]=2 a[5]=a[1]=4 t=a[1],a[1]=a[6]=1 a[6]=a[1]=2 t=a[2],a[3]=a[2]=8 a[2]=a[3]=7 t=a[2],a[4]=a[2]=7 a[2]=a[4]=6 a[5]=6,a[2]=4 a[6]=4,a[2]=2
○20 0 1 2 3 4 7 8 6 5 9
○21 0 1 2 3 4 6 7 8 5 9
○22 0 1 2 3 4 5 7 8 6 9
○23 0 1 2 3 4 5 6 8 7 9
○24 0 1 2 3 4 5 6 7 8 9
0123456789
J 的值
a[min]>a[j] Min=j t=a[i],a[i]=a[min], 执行完程序排序后的数是:
输出结果: 在键盘输入:
8,6,4,7,2,0,1,3,5,9 回车
○1 6 8 4 7 2 0 1 3 5 9
○2 4 8 6 7 2 0 1 3 5 9
○3 2 8 6 7 4 0 1 3 5 9
○4 0 8 6 7 4 2 1 3 5 9
○5 0 6 8 7 4 2 1 3 5 9
○6 0 4 8 7 6 2 1 3 5 9
Min=5 Min=6 Min=7
a[5]=8,a[4]=7 a[6]=7,a[4]=6 a[7]=6,a[4]=4
0123687459 0123487659 0123478659
Min=6 Min=7 Min=8
a[6]=8,a[5]=7 a[7]=7,a[5]=6 a[8]=6,a[5]=5
0123467859 0123457869 0123456879
Min=8 a[8]=7,a[6]=6 Min=8 a[8]=8,a[7]=7
0123456789
J=6

J=7

J=8,9

i=4
Min=4 J=5

J=6

J=7

J=8,9
i=5
Min=5 J=6
Байду номын сангаас

J=7

J=8

J=9

i=6
Min=6 J=7,9

J=8

i=7
Min=7 J=8

J=9

i=8
Min=8 J=9

Min=5 Min=2
t=a[0],a[0]=a[5]=0 a[5]=a[0]=2 t=a[1],a[1]=a[2]=6 a[2]=a[1]=8
○7 0 2 8 7 6 4 1 3 5 9
i 的值 i=0
Min=i Min=0
○8 0 1 8 7 6 4 2 3 5 9
○9 0 1 7 8 6 4 2 3 5 9
○10 0 1 6 8 7 4 2 3 5 9
○11 0 1 4 8 7 6 2 3 5 9
○12 0 1 2 8 7 6 4 3 5 9
○13 0 1 2 7 8 6 4 3 5 9
○14 0 1 2 6 8 7 4 3 5 9
○15 0 1 2 3 7 8 6 4 5 9
○16 0 1 2 3 6 8 7 4 5 9
○17 0 1 2 3 6 8 7 4 5 9
○18 0 1 2 3 4 8 7 6 5 9
○19 0 1 2 3 4 7 8 6 5 9
a[min]=交换后 a[i]
J=1

Min=1 t=a[0],a[0]=a[1]=8, 6 8 4 7 2 0 1 3 5 9
a[1]=a[0]=6
J=2

Min=2 t=a[0],a[0]=a[2]=,4 4 8 6 7 2 0 1 3 5 9
a[2]=a[0]=6
J=3,6,7,8,9 否
J=4
a[4]=8,a[3]=7 a[5]=7,a[3]=6 a[6]=6,a[3]=4 a[7]=4,a[3]=3
0487621359
028 7641359
0187642359
0178642359
0168742359
0148762359 0128764359
0127864359 0126874359 0123786459 0123687459
一, 选择排序: 16.用选择法对 10 个整数进行升序排序(c 语言)
#include<stdio.h> void main() { int i,j,min,t,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<9;i++) { min=i; for(j=i+1;j<10;j++) if(a[min]>a[j]) min=j; t=a[i]; a[i]=a[min]; a[min]=t; } printf("\n The sorted numbers:\n"); for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); }

Min=4 t=a[0],a[0]=a[4]=2, 2 8 6 7 4 0 1 3 5 9
a[4]=a[0]=4
J=5

i=1
Min=1 J=2,

J=3,7,8,9 否
J=4

J=5

J=6

i=2
Min=2 J=3

J=4

J=5

J=6

J=7,8,9 否
i=3
Min=3 J=4

J=5

相关文档
最新文档