c语言查找算法的实现
时间: 2024-10-20 09:04:32 浏览: 20
C语言中有多种查找算法,比如顺序查找、二分查找等。以下是它们的基本实现:
1. **顺序查找**(线性查找):
```c
int linear_search(int arr[], int n, int target) {
for (int i = 0; i < n; i++) {
if (arr[i] == target) {
return i; // 找到目标返回其索引
}
}
return -1; // 没找到目标,返回-1
}
```
在这个函数中,数组`arr`按升序排列,我们逐个检查每个元素是否等于目标值。
2. **二分查找**(适用于有序数组):
```c
int binary_search(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 目标未找到
}
```
这里,通过不断将搜索范围减半,直到找到目标或范围为空。
阅读全文