c语言由N个有序整数组成的数列已放在一维数组中,给定程序的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值,否则返回-1。
时间: 2024-02-03 20:13:38 浏览: 83
C语言数组练习题.
以下是实现折半查找法的C语言代码:
```c
int binarySearch(int arr[], int n, int m) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == m) {
return mid;
} else if (arr[mid] < m) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
其中,arr为有序整数数组,n为数组长度,m为要查找的整数。函数返回m在数组中的下标,若未找到则返回-1。函数实现的思路为:首先将查找区间设为整个数组,然后每次取中间位置的元素与要查找的数进行比较,若相等则返回下标,若小于则在右半部分继续查找,若大于则在左半部分继续查找,直到查找完整个区间或找到为止。
阅读全文