数据结构表的查找c语言代码
时间: 2024-05-26 15:08:09 浏览: 20
数据结构中常用的表格查找算法包括顺序查找和二分查找,以下是它们的C语言代码实现:
1. 顺序查找
```c
int Sequential_Search(int *a, int n, int key)
{
int i;
for (i = 0; i < n; i++)
{
if (a[i] == key)
return i;
}
return -1;
}
```
2. 二分查找
```c
int Binary_Search(int *a, int n, int key)
{
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high)
{
mid = (low + high) / 2;
if (a[mid] == key)
return mid;
else if (a[mid] > key)
high = mid - 1;
else
low = mid + 1;
}
return -1;
}
```
相关问题
C语言数据结构顺序查找代码
以下是C语言实现顺序查找的代码示例:
```c
#include <stdio.h>
int SeqSearch(int arr[], int n, int key) {
int i;
arr[0] = key; // 将目标值存储在数组的第一个位置作为哨兵
for (i = n; arr[i] != key; i--); // 从最后一位开始往回查找,直到找到目标值
return i; // 返回目标值的索引位置
}
int main() {
int arr[] = {5,2, 8, 3, 1, 9, 4, 7, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int key = 3;
int index = SeqSearch(arr, n, key);
if (index != 0) {
printf("目标值 %d 的索引位置为 %d\n", key, index);
} else {
printf("未找到目标值 %d\n", key);
}
return 0;
}
```
数据结构c语言二分查找代码
以下是C语言中实现二分查找的代码示例:
1. 递归实现二分查找:
```c
int binarySearchRecursive(int arr[], int low, int high, int target) {
if (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] > target) {
return binarySearchRecursive(arr, low, mid - 1, target);
}
else {
return binarySearchRecursive(arr, mid + 1, high, target);
}
}
return -1; // 如果未找到目标元素,返回-1
}
```
2. 非递归实现二分查找:
```c
int binarySearchIterative(int arr[], int low, int high, int target) {
while (low <= high) {
int mid = low + (high - low / 2;
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] > target) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
return -1; // 如果未找到目标元素,返回-1
}
```
这两种方法都是基于有序数组进行二分查找。递归实现通过不断缩小查找范围来找到目标元素,而非递归实现则使用循环来实现相同的功能。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)