1.c语言编写程序实现顺序查找和折半查找。
时间: 2024-05-01 11:23:06 浏览: 45
C语言程序设编写程序在数组中查找一个数要求 ⑴用顺序查找实现 ⑵用折半查找实现。 注:若有该数,则输出该数,否则输出“无此数”。
5星 · 资源好评率100%
顺序查找(线性查找):
```c
#include <stdio.h>
int sequential_search(int arr[], int n, int target) {
int i;
for (i = 0; i < n; i++) {
if (arr[i] == target) {
return i;
}
}
return -1; // 没有找到目标元素,返回 -1
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 5;
int index = sequential_search(arr, n, target);
if (index != -1) {
printf("目标元素 %d 在数组中的下标是 %d\n", target, index);
} else {
printf("目标元素 %d 没有在数组中找到\n", target);
}
return 0;
}
```
折半查找(二分查找):
```c
#include <stdio.h>
int binary_search(int arr[], int n, int target) {
int left = 0, right = n - 1, mid;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1; // 没有找到目标元素,返回 -1
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 5;
int index = binary_search(arr, n, target);
if (index != -1) {
printf("目标元素 %d 在数组中的下标是 %d\n", target, index);
} else {
printf("目标元素 %d 没有在数组中找到\n", target);
}
return 0;
}
```
阅读全文