数据结构顺序表的顺序查找和折半查找c++代码
时间: 2023-12-18 10:01:30 浏览: 180
数据结构 顺序查找 折半查找
4星 · 用户满意度95%
顺序查找(Sequential Search)也被称为线性查找,它是一种简单直观的查找方式。顺序查找从数据结构的起始位置开始,依次比较每个元素,直到找到目标元素或者遍历完整个数据结构。以下是C语言实现顺序查找的代码:
```c
#include <stdio.h>
int linearSearch(int arr[], int n, int target) {
for (int i = 0; i < n; i++) {
if (arr[i] == target) {
return i; // 返回目标元素的索引
}
}
return -1; // 目标元素不存在,返回-1
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 3;
int result = linearSearch(arr, n, target);
if (result == -1) {
printf("目标元素不存在\n");
} else {
printf("目标元素的索引是:%d\n", result);
}
return 0;
}
```
折半查找(Binary Search)是一种高效的查找算法,适用于有序的数据结构。它通过不断缩小查找范围的方式进行查找,每次将目标元素与查找范围中间的元素进行比较,从而将查找范围减半。以下是C语言实现折半查找的代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid; // 返回目标元素的索引
}
if (arr[mid] < target) {
left = mid + 1; // 目标元素在右侧
} else {
right = mid - 1; // 目标元素在左侧
}
}
return -1; // 目标元素不存在,返回-1
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 3;
int result = binarySearch(arr, 0, n - 1, target);
if (result == -1) {
printf("目标元素不存在\n");
} else {
printf("目标元素的索引是:%d\n", result);
}
return 0;
}
```
以上就是顺序查找和折半查找的C代码实现。
阅读全文