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

请教:数据库系统工程师模拟试题一 第1大题第26小题如何解答?

题目

【题目描述】

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

正确答案:A

答案分析:

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

怎么做的啊

参考答案

该题目的意思是,用选择排序法把数列{ 18,7,6,24,38,56,3,22,47,36 } 排成{ 3,6,7,18,22,24,36,38,47,56 }这样的一个升序序列,这也叫按键值(序列里的数字)递增顺序的序列。

选择排序算法:
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
其基本思想如下:
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:

  ①初始状态:无序区为R[1..n],有序区为空。

  ②第1趟排序

  在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

  ……

  ③第i趟排序

  第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(1≤i≤n-1)。该趟排序从当前无序区中选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。

  这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。

因此,题中序列用选择排序的过程如下:
初始键值序列{18, 7, 6, 24, 38, 56,  3, 22, 47, 36}
第一次扫描:从初始无序列中选择最小键值的“3”, 与其第一个键值“18”交换位置。
结果为: {3,7, 6, 24, 38, 56, 18, 22, 47, 36} 。
第二次扫描,从剩余无序列中选择最小键值的“6”, 与其第一个键值“7”交换位置。
结果为:{ 3, 6,7, 24, 38, 56, 18, 22, 47, 36}。
以此类推,
第三次扫描结果为:{3, 6, 7, 24, 38, 56, 18, 22, 47, 36}。
第四次扫描结果为:{3, 6, 7, 18, 38, 56, 24, 22,47, 36}。
第五次扫描结果为:{3, 6, 7, 18, 22, 56, 24, 38,47, 36}。
第六次扫描结果为:{3, 6, 7, 18, 22, 24, 56, 38,47, 36}。
第七次扫描结果为:{3, 6, 7, 18, 22, 24, 36, 38,47, 56}。
第八次扫描结果为:{3, 6, 7, 18, 22, 24, 36, 38,47, 56}。
第九次扫描结果为:{3, 6, 7, 18, 22, 24, 36, 38,47, 56}。
最后结果为:{3, 6, 7, 18, 22, 24, 36, 38,47, 56}。
经过9次扫描完成排序。