用C语言写查找算法的代码
时间: 2023-04-07 12:04:12 浏览: 67
我可以回答这个问题。以下是一个简单的用C语言写的查找算法的代码:
```c
#include <stdio.h>
int linear_search(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[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 5;
int result = linear_search(arr, n, x);
if (result == -1) {
printf("Element not found\n");
} else {
printf("Element found at index %d\n", result);
}
return 0;
}
```
这是一个简单的线性查找算法,它在给定的数组中查找给定的元素。如果找到了元素,它返回元素的索引,否则返回-1。
相关问题
用C语言写顺序查找算法
下面是用C语言实现顺序查找算法的示例代码:
```c
#include <stdio.h>
int sequential_search(int arr[], int n, int key)
{
int i;
for (i = 0; i < n; i++) {
if (arr[i] == key) {
return i; // 返回元素在数组中的位置
}
}
return -1; // 如果没找到,返回-1
}
int main()
{
int arr[] = {5, 8, 3, 6, 2, 1, 9, 4, 7};
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int key = 6; // 待查找的元素
int pos = sequential_search(arr, n, key); // 查找元素
if (pos == -1) {
printf("元素 %d 没有找到\n", key);
} else {
printf("元素 %d 在数组中的位置为 %d\n", key, pos);
}
return 0;
}
```
上述代码定义了一个`sequential_search`函数,该函数接收一个整型数组、数组长度和待查找的元素作为参数。函数通过for循环逐个比较数组中的元素,如果找到相等的元素,则返回其在数组中的位置。如果没有找到,则返回-1表示查找失败。
在`main`函数中,我们定义了一个整型数组`arr`,长度为9。我们要查找的元素是6。调用`sequential_search`函数查找元素,并根据返回值判断是否找到。如果找到,则输出元素在数组中的位置;如果未找到,则输出相应的提示信息。
用c语言写一个代码,实现折半查找算法
好的,以下是 C 语言的折半查找算法代码:
```c
int binarySearch(int arr[], int n, int target) {
int left = 0;
int right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
其中,arr 表示有序数组,n 表示数组长度,target 表示待查找元素。该函数通过不断缩小查找范围,最终找到目标元素或者判断其不存在,返回相应的下标或 -1。