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

admin2019-06-12  37

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

选项 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比较,F    2.Q,H,C,Y,P,A,M,S,R,D,F,X
    D和F比较,D    3.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.O,H,C,Y,P,A,D,M,S,R,F,X
    A和D比较,A    7.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/4Yf7FFFM
0

最新回复(0)