早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 职业资格考试 -->其它 -->

请教:2012年3月全国计算机等级《二级Access》考前预测试卷(1)第1大题第14小题如何解答?

题目

【题目描述】

设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为(  )。

A)23,l3,51,57,66,26,81,69,76

B)13,23,26,51’57,66,81,76,69

C)23,13,51,57,26,66,81,69,76

D)23,13,51,57,81,26,66,69,76

【我提交的答案】:B
【参考答案与解析】:

正确答案:A

答案分析:

快速排序是起泡排序的改进。在快速排序中,任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的在一部分,关键码值比它大的在另一部分,再分别对两个部分实施上述过程,一直重复到排序完成。

【我的疑问】(如下,请求专家帮助解答)

 

参考答案

以第一个元素为基准指针,最前面一以low指针,最后一个high指针,基准指针总是会和一个指针保持一致,和另一个指针的值比较。一旦前面大于后面,值进行交换,基准指针也指向另一个。移动的总是那个和基准指针相对的。交换一次便定了一个值,并且是原基准指针位置。 举例: 第一趟: 基准指针与low指针一致,所以和high指针的值进行比较,不满足要求,所以low和high值互换,基准指针指向high,low的值就定了,low就往后面移动一个。 以后同上,直到low=high. 23,13,51,76,81,26,57,69,66 23,13,51,66,81,26,57,69,76 23,13,51,57,81,26,66,69,76 23,13,51,57,66,26,81,69,76 23,13,51,57,26,66,81,69,76