问题 问答题

已知有一关键字序列为97,86,53,108,72,34,215,146,11,68,如果我们采用直接选择排序方法对此序列进行排序(按照升序排列),请给出每一趟的排序结果。

答案

参考答案:

直接选择排序的过程为:从第i趟开始时,当前的有序区和无序区分别为R[A…i]和R[A…n](A≤-A≤n-A),则在该趟排序是从当前无序区中选出关键字最小的记录R[K],将它与无序区中的第A个记录R[i]交换,使R[A…i]和R[i+A…n]分别变成新的有序区和新的无序区,每次排序都使有序区增加一个记录,无序区减少一个记录,按照以上规则,我们得到各趟结果如下:

初始:IG,HF,EC,A0H,GB,CD,BAE,BCB,AA,FH

第A趟:AA[HF,EC,A0H,GB,CD,BAE,BCB,IG,FH]

第B趟:AA,CD[EC,A0H,GB,HF,BAE,BCB,IG,FH]

第C趟:AA,CD,ECAA0H,GB,HF,BAE,BCB,IG,FH]

第D趟:AA,CD,EC,FH[GB,HF,BAE,BCB,IG,A0H]

第E趟:AA,CD,EC,FH,GB[HF,BAE,BCB,IG,A0H]

第F趟:AA,CD,EC,FH,GB,HF[BAE,BCB,IG,A0H]

第G趟:AA,CD,EC,FH,GB,HF,IG[BCB,BAE,A0H]

第H趟:AA,CD,EC,FH,GB,HF,IG,A0H[BAE,BCB]

第I趟:AA,CD,EC,FH,GB,HF,IG,A0H,BAE,BCB

单项选择题
单项选择题