c语言中查询函数
在C语言中,查询函数通常是指查或搜索某个特定值的函数。这些函数通常用于数组、链表等数据结构中。以下是一些常用的查询函数:
1. 线性查(Linear Search):在数组中查特定值的简单方法。它从数组的第一个元素开始,逐个比较每个元素,直到到目标值或遍历完整个数组。时间复杂度为O(n)。
c
#include <stdio.h>
int linear_search(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, 3, 5, 7, 9};
int target = 5;
int n = sizeof(arr) / sizeof(arr[0]);
int index = linear_search(arr, n, target);
if (index != -1) {
printf("到目标值 %d 在索引 %d\n", target, index);
} else {
printf("未到目标值 %d\n", target);
}
return 0;
}
2. 二分查(Binary Search):在已排序的数组中查特定值的方法。它通过将数组分成两半,然后根据目标值与中间元素的比较结果来确定下一步查的范围。时间复杂度为O(log n)。
c
#include <stdio.h>
int binary_search(int arr[], int n, int target) {
int left = 0;
int right = n - 1;
c语言库函数 while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid; // 返回目标值的索引
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 如果没有到目标值,返回-1
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int target = 5;
int n = sizeof(arr) / sizeof(arr[0]);
int index = binary_search(arr, n, target);
if (index != -1) {
printf("到目标值 %d 在索引 %d\n", target, index);
} else {
printf("未到目标值 %d\n", target);
}
return 0;
}
3. 哈希查(Hashing):通过使用哈希表来存储和查特定值的方法。哈希表是一种基于哈希函数的数据结构,可以将键值对映射到表中的特定位置。查时间复杂度接近O(1),但需要额外的空间来存储哈希表。
c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int key;
int value;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论