Advertisement

YTU——问题:如何提高查找效率

阅读量:

题目描述

在由 n 个整数构成的有序序列中,需要确定关键字 key 在其中出现的具体位置。若 key 并未在该序列中出现,则应输出 No
为提升查找效率,程序借助了序列本身有序这一特性,采用“二分查找”算法进行处理。该算法的基本操作是:首先将当前表中间位置的元素与待查找的关键字 key 进行比较,若两者相等,则完成查找;若不相等,则根据中间元素与 key 的大小关系,将原表划分为前后两个子表。当中间元素大于 key 时,继续在前一子表中进行查找;反之,则在后一子表中继续查找。不断重复上述步骤,直至找到匹配项从而实现成功查找,或者直到无法再划分出子表为止,此时判定为查找失败。
提示部分已提供部分代码框架,请将其补充完整,并按照要求提交相应代码段。

输入

首先输入一个整数 n,用于表示待查找序列中包含的元素数量。
随后输入 n 个按照升序排列的整数,构成待查找的序列。
最终输入需要查找的目标数值 key。

小标题

若序列中存在该 key,则输出其出现的位置;若未找到,则输出 No

输入输出样例分析

复制代码
 10

    
 2 4 5 6 8 22 37 65 75 88
    
 5
    
    
    
    

样例输出 #1

复制代码
    3
    

全部评论 (0)

还没有任何评论哟~