请使用C语言编写顺序查找程序
时间: 2024-03-24 19:37:57 浏览: 27
好的,以下是使用C语言编写的顺序查找程序:
```c
#include <stdio.h>
int sequentialSearch(int arr[], int len, int key) {
for (int i = 0; i < len; i++) {
if (arr[i] == key) {
return i;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11};
int len = sizeof(arr) / sizeof(arr[0]);
int key = 7;
int index = sequentialSearch(arr, len, key);
if (index == -1) {
printf("未找到 %d\n", key);
} else {
printf("找到 %d, 下标为 %d\n", key, index);
}
return 0;
}
```
该程序定义了一个名为`sequentialSearch`的函数,它接收一个整数数组、数组长度和要查找的关键字作为参数,返回关键字在数组中的下标,如果未找到则返回-1。主函数中定义了一个整数数组、数组长度和要查找的关键字,然后调用`sequentialSearch`函数进行查找,并根据返回值输出查找结果。
相关问题
用C语言编写程序实现顺序查找和折半查找
以下是C语言实现顺序查找和折半查找的示例代码:
### 顺序查找
```c
#include <stdio.h>
int seq_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[] = {2, 4, 7, 8, 10, 12};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 8;
int index = seq_search(arr, n, x);
if (index == -1) {
printf("%d not found", x);
} else {
printf("%d found at index %d", x, index);
}
return 0;
}
```
### 折半查找
```c
#include <stdio.h>
int binary_search(int arr[], int low, int high, int x) {
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] < x) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {2, 4, 7, 8, 10, 12};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 8;
int index = binary_search(arr, 0, n-1, x);
if (index == -1) {
printf("%d not found", x);
} else {
printf("%d found at index %d", x, index);
}
return 0;
}
```
c语言编写程序实现顺序查找和折半查找。
顺序查找(线性查找)的 C 语言程序实现示例:
```c
#include <stdio.h>
int sequential_search(int arr[], int n, int target) {
/*
在数组 arr 中查找目标元素 target,返回其下标,若不存在则返回 -1
*/
for (int i = 0; i < n; i++) {
if (arr[i] == target) {
return i;
}
}
return -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 语言程序实现示例:
```c
#include <stdio.h>
int binary_search(int arr[], int n, int target) {
/*
在已排序的数组 arr 中查找目标元素 target,返回其下标,若不存在则返回 -1
*/
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -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;
}
```
以上是 C 语言代码示例,其他语言的实现类似。