1.c语言编写程序实现顺序查找和折半查找。
时间: 2024-04-30 10:21:35 浏览: 99
折半查找示例代码C语言和c++
顺序查找(线性查找)的实现:
```c
#include <stdio.h>
int linearSearch(int arr[], int n, int x) {
int i;
for (i = 0; i < n; i++) {
if (arr[i] == x)
return i;
}
return -1; // 没有找到
}
int main() {
int arr[] = {10, 20, 30, 40, 50};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 30;
int result = linearSearch(arr, n, x);
if (result == -1)
printf("元素 %d 未找到\n", x);
else
printf("元素 %d 在数组中的下标为 %d\n", x, result);
return 0;
}
```
折半查找(二分查找)的实现:
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) {
while (l <= r) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] < x)
l = mid + 1;
else
r = mid - 1;
}
return -1; // 没有找到
}
int main() {
int arr[] = {10, 20, 30, 40, 50};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 30;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1)
printf("元素 %d 未找到\n", x);
else
printf("元素 %d 在数组中的下标为 %d\n", x, result);
return 0;
}
```
注:以上代码仅供参考,可能存在错误,建议自行验证。
阅读全文