编写c语言程序输出在顺序表{1,2,3,4,5,6,7,8,9,10}中采用折半查找关键字9的过程
时间: 2023-09-30 12:06:03 浏览: 49
以下是采用折半查找关键字9的C语言程序:
```
#include <stdio.h>
int main() {
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int left = 0;
int right = sizeof(a) / sizeof(int) - 1;
int mid;
int key = 9;
while (left <= right) {
mid = (left + right) / 2;
if (a[mid] == key) {
printf("找到了,下标为%d\n", mid);
return 0;
}
else if (a[mid] > key) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
printf("没找到\n");
return 0;
}
```
程序中,首先定义了一个顺序表a,然后定义了左指针left和右指针right分别指向数组的第一个元素和最后一个元素。接着定义了中间指针mid和要查找的关键字key。在while循环中,每次将mid设置为left和right的中间位置,如果a[mid]等于key,则找到了要查找的关键字,输出它在数组中的下标,程序结束。如果a[mid]大于key,则说明要查找的关键字在mid的左边,将right指针移动到mid的左边一位。如果a[mid]小于key,则说明要查找的关键字在mid的右边,将left指针移动到mid的右边一位。当left大于right时,说明没有找到要查找的关键字,输出“没找到”。