一个c语言程序完成顺序查找与折半查找要输出元素所在位置、查找到该元素次数和查找的过程的代码实现
时间: 2024-03-15 09:47:35 浏览: 78
顺序查找和折半查找(C语言)
以下是一个用 C 语言实现顺序查找和折半查找的代码,可以输出元素所在位置、查找到该元素的次数以及查找的过程。
```c
#include <stdio.h>
// 顺序查找函数
int sequential_search(int arr[], int len, int target) {
int count = 0; // 计数器
for (int i = 0; i < len; i++) {
if (arr[i] == target) {
printf("元素 %d 在位置 %d\n", target, i + 1);
count++;
}
}
printf("元素 %d 出现了 %d 次\n", target, count);
return count;
}
// 折半查找函数
int binary_search(int arr[], int len, int target) {
int left = 0, right = len - 1, mid, count = 0; // 左右指针、中间位置、计数器
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == target) {
printf("元素 %d 在位置 %d\n", target, mid + 1);
count++;
break;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
printf("元素 %d 出现了 %d 次\n", target, count);
return count;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 9, 9, 11, 13};
int len = sizeof(arr) / sizeof(arr[0]);
int target = 9;
int count1 = sequential_search(arr, len, target);
int count2 = binary_search(arr, len, target);
return 0;
}
```
在此代码中,我们定义了两个函数 `sequential_search` 和 `binary_search`,分别实现顺序查找和折半查找。在 `main` 函数中,我们定义了一个数组 `arr`,查找元素 `target` 在数组中出现的位置和次数,最后输出结果。注意,在 `binary_search` 函数中,我们使用了一个 `break` 语句,这是为了避免重复计算元素出现的次数。
你可以直接复制粘贴这段代码,保存为 `.c` 文件并编译运行,即可看到输出结果。
阅读全文