在内排序的过程中,通常需要对待排序的关键码集合进行多遍扫描。采用不同排序方法,会产生不同的排序中间结果。设要将序列中的关键码按字母的升序重新排列,则( )是冒泡排序一趟扫描的结果。

admin2019-06-12  25

问题 在内排序的过程中,通常需要对待排序的关键码集合进行多遍扫描。采用不同排序方法,会产生不同的排序中间结果。设要将序列中的关键码按字母的升序重新排列,则(    )是冒泡排序一趟扫描的结果。

选项 A、F,H,C,D,P,A,M,Q,R,S,Y,X
B、P,A,C,S,Q,D,F,X,R,H,M,Y
C、A,D,C,R,F,Q,M,S,Y,P,H,X
D、H,C,Q,P,A,M,S,R,D,F,X,Y

答案D

解析 此题比较容易,但从历年试题看来,考的几率是比较高的,这里只将一些考生有疑问的地方提出来讲一讲。以前有考生提出疑问:“冒泡排序一趟扫描的结果标准答案为:H,C,Q,P,A,M,S,R,D,F,X,Y。如果按照冒泡排序的基本思想是先比较A[n一1]和A[n一2]一直到A[0],那么冒泡排序一趟扫描的结果得到应该是:A,Q,H,C,Y,P,D,M,S,R,F,X。”考生提出这种疑问是因为对冒泡排序的规则不清楚。冒泡排序可以先比较A[n一1]和A[n一2]一直到A[0],也可以先比较A[0]和A[1]一直到A[n一1]。
如果先比较A[n一1]和A[n一2],详细过程如下:
1.Q,H,C,Y,P,A,M,S,R,D,F,X
F和X比较,F2.Q,H,C,Y,P,A,M,S,R,D,F,X
D和F比较,D3.Q,H,C,Y,P,A,M,S,D,R,F,X
R和D比较,R>D,所以交换R和D;
4.Q,H,C,Y,P,A,M,D,S,R,F,X
S和D比较,S>D,所以交换S和D;
5.Q,H,C,Y,P,A,D,M,S,R,F,X
M和D比较,M>D,所以交换M和D;
6.Q,H,C,Y,P,A,D,M,S,R,F,X
A和D比较,A7.Q,H,C,Y,A,P,D,M,S,R,F,X
P和A比较,P>A,所以交换P和A;
8.Q,H,C,A,Y,P,D,M,S,R,F,X
Y和A比较,Y>A,所以交换Y和A;
9.Q,H,A,C,Y,P,D,M,S,R,F,X
C和A比较,C>A,所以交换C和A;
10.Q,A,H,C,Y,P,D,M,S,R,F,X
H和A比较,H>A,所以交换H和A;
11.A,Q,H,C,Y,P,D,M,S,R,F,X
Q和A比较,Q>A,所以交换Q和A。
用同样的方法可以推出标准答案H,C,Q,P,A,M,S,R,D,F,x,Y也是正确的。所以答案选D。
转载请注明原文地址:https://jikaoti.com/ti/mFf7FFFM
0

相关试题推荐
最新回复(0)