问题
填空题
设有关键码序列(O, G, M, Z, A, N, B, P, X, H, Y, S, T, L, K, E),要按关键码值递增的顺序进行排序,采用堆排序法进行,经过初始建堆后关键码值A在序列中的序号是()。
答案
参考答案:A
解析:
建堆的算法:首先将要排序的所有关键码放到一棵完全二叉树的各个结点中(这时的二叉树不具备堆的特性),然后,从i=[n/2](n为结点的个数)的结点Ki开始,逐步把以K[n/2],K[n/2]-1,K[n/2]-2…为根的子树排成堆,直到以K1为根的树排成堆,就完成了建堆过程。此题中,n=16,i=[16/2]=8,即从第8个结点丌始,建堆完成后如下图所示。
所以经过初始建堆后关键码值A在序列中的序号是1。