问题 解答题

若要按从大到小给7,5,9,3,10五个数排序,试写出算法.

答案

解: S1  a=7,b=5,c=9,d=3,e=10;

S2 依次用a与其余各数比较,若a大于其余各数,则a最大,令a1=a,否则,拿那个比a大的数继续与剩下的数比较,按此法则进行下去,直到最后一个数也参与了比较,这样最后得到的数就是最大数,令它为a1;

S3 剩下的四个数继续按照S2的法则得到最大数,令它为a2;

S4 剩下的三个数继续按照S2的法则得到最大数,令它为a3;

S5 剩下的最后两个数进行比较,较大者设为a4,较小者设为a5;

S6 输出a1,a2,a3,a4,a5.

本题常见错误:第一步,输入7,5,9,3,10;第二步比较这五个数的大小;第三步输出排序后的5个数,这样就不符合计算机语言的特点.算法是让计算机理解的语言,上述操作计算机是无法做到的.本题可以先通过已知几个数之间的比较把其中的最大值设为a1,再求剩下几个数的最大值,设为a2,依次进行下去,最后按序输出即可.

单项选择题
选择题