题目描述 已知一维数组中的10个元素各不相同,但已按升序排列。查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。你有什么好方法吗? 输入要求 先从键盘输入10个升序排列的整数,然后再输入一个待查找的数据key。 输出要求 输出对应结果。若不存在则输出not found. 输入样例 6 7 9 10 16 18 20 35 141 150 21 输出样例 not found代码
时间: 2023-06-16 10:06:51 浏览: 93
可以使用二分查找的方法来查找数组中是否存在值为key的元素。具体步骤如下:
1. 定义左右两个指针left和right,分别指向数组的起始和末尾位置。
2. 在循环中,每次计算出中间位置mid = (left + right) / 2,然后将中间位置的元素与key进行比较。
3. 如果中间位置的元素等于key,则直接输出mid即为对应下标。
4. 如果中间位置的元素大于key,则说明key可能在左半部分,将right指针移动到mid-1的位置。
5. 如果中间位置的元素小于key,则说明key可能在右半部分,将left指针移动到mid+1的位置。
6. 循环执行以上步骤,直到left>right为止。
7. 如果最终left>right,说明数组中不存在值为key的元素,输出not found。
下面是对应的代码实现:
阅读全文