阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。 [说明] 下面的流程图实现了正整数序列{K(1),K(2),…,K(n)}的重排,得到的新序列中,比K(1)小的数都在K(1)的左侧,比K(1)大的数都在K(1)的右侧。以n=6为例,序列{

admin2012-12-10  53

问题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。
[说明]
   下面的流程图实现了正整数序列{K(1),K(2),…,K(n)}的重排,得到的新序列中,比K(1)小的数都在K(1)的左侧,比K(1)大的数都在K(1)的右侧。以n=6为例,序列{12,2,9,13,21,8}的重排过程为:
                        {12,2,9,13,21,8}
                       →{2,12,9,13,21,8}
                       →{9,2,12,13,21,8}
                       →{8,9,2,12,13,21}
[流程图]

选项

答案(1) K(s)<K(t) (2) K(s) (3) i←i-1 (4) t←t+1 (5) s←s+1

解析 算法中变量K(t)始终代表原始序列中的K(1)值,t则代表它在当前序列中的位置编号,初始值为1; k(s)代表待比较的数。算法首先拿K(t)和其后的数做比较,若K(s)比K(t)小,则K(s)移至序列的最左侧,同时顺次把第i,i<s位的元素向右移一位。让s自增1,重复这一步骤,直至到达序列末端(即s=n)为止。
转载请注明原文地址:https://jikaoti.com/ti/Y5W7FFFM
0

最新回复(0)