题目
设一组初始记录关键字序列(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()
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
Q , H , C , Y , P , A , M , S , R , D , F , X
一趟冒泡排序,是将“大的”字母沉底
首先:Q与H比较
H,Q,C,Y,P,A,M,S,R,D,F,X
然后Q与C比较
HCQYPAMSRDFX
Q与Y比较,Q不同,
之后Y与P比较,接下来的比较是:
H,C,Q,P,Y,A,M,S,R,D,F,X
H,C,Q,P,A,Y,M,S,R,D,F,X
H,C,Q,P,A,M,Y,S,R,D,F,X
H,C,Q,P,A,M,S,Y,R,D,F,X
H,C,Q,P,A,M,S,R,Y,D,F,X
H,C,Q,P,A,M,S,R,D,Y,F,X
H,C,Q,P,A,M,S,R,D,F,Y,X
H,C,Q,P,A,M,S,R,D,F,X,Y
至此,一趟冒泡排序完成。
所以选择D选项。
哇塞,果然还是学习是最重要的。
冒泡排序就是两两交换,没什么好说的,但是注意冒泡排序是稳定排序,所以当后面等于前面的时候,不发生交换
冒泡排序就是两两交换,没什么好说的,但是注意冒泡排序是稳定排序,所以当后面等于前面的时候,不发生交换
选D。根据题目的意思,这题既可以从前往后进行冒泡排序,也可从后往前进行冒泡排序
第一趟冒泡:从数组第一个元素到最后一个元素扫描,比较相邻的元素,如果后一个元素小于前一个,则交换位置。第一趟结束时,最大元素到达最后一个元素位置
冒泡排序不是从后往前比较吗?这样才叫冒泡啊,小的元素从后面冒到前面去!