请使用C语言编写顺序查找程序
时间: 2024-03-24 15:37:57 浏览: 76
好的,以下是使用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 sequentialSearch(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, 2, 3, 4, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
int x = 4;
int result = sequentialSearch(arr, n, x);
if (result == -1) {
printf("Element not found\n");
} else {
printf("Element found at index: %d\n", result);
}
return 0;
}
```
折半查找,也称二分查找,是一种高效的查找算法。它要求数据结构必须有序,然后将所需查找的关键字与中间位置的关键字进行比较,如果相等则返回位置,如果不相等则根据关键字的大小关系在左侧或右侧继续查找。以下是C语言实现折半查找的代码示例:
```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[] = { 1, 2, 3, 4, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
int x = 4;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1) {
printf("Element not found\n");
} else {
printf("Element found at index: %d\n", result);
}
return 0;
}
```
阅读全文