【正确答案】
B
【答案解析】 通常,对一个有序数组进行查找的最好方法为二分查找法。
二分查找的过程如下(假设表中元素是按升序排列):首先,将表中间位置记录的关键字与查找关键字比较,如果两者值相等,则查找成功;否则,利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字的值大于查找关键字的值,则进一步查找前一子表,否则,进一步查找后一子表。重复以上过程,直到找到满足条件的记录,查找成功,或直到子表不存在为止,此时查找不成功。
例如,对于数组{1,2,3,4,5,6,7,8,9},当需要查找元素6时,如果用二分查找的算法执行,其顺序如下:
1)第一步查找中间元素,即5,由于5<6,所以,6必然在5之后的数组元素中,那么就在{6,7,8,9}中查找。
2)寻找{6,7,8,9}的中位数,为7,7>6,所以,6应该在7左边的数组元素中,那么只剩下6,即找到了。
本题中,数组序列共11个数据元素,第一次比较下标为10/2=5的元素32。第二次比较下标为4/2=2的元素15,得到要查找的数。
通过以上的分析可知,二分查找的时间复杂度为O(logn)。所以,选项B正确。