查找函数怎么用c语言

在C语言中,查找函数通常用于在数组或链表中查找特定的元素,以下是一些常用的查找函数及其用法:,1、线性查找(Linear Search):,线性查找是一种简单的查找算法,它从数组的第一个元素开始,逐个比较每个元素与目标值,直到找到目标值或遍历完整个数组。,2、二分查找(Binary Search):,二分查找是一种更高效的查找算法,它要求数组是有序的,通过每次将搜索范围缩小一半,可以快速找到目标值。,3、插值查找(Interpolation Search):,插值查找是一种改进的二分查找算法,它根据要查找的值来调整搜索范围,这种方法在处理均匀分布的数据时效果较好。,
,#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 n = sizeof(arr) / sizeof(arr[0]); int target = 5; int result = linear_search(arr, n, target); if (result != 1) { printf(“元素 %d 在数组中的索引为 %d “, target, result); } else { printf(“元素 %d 不在数组中 “, target); } return 0; },#include <stdio.h> int binary_search(int arr[], int n, int target) { int left = 0; int right = n 1; 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 n = sizeof(arr) / sizeof(arr[0]); int target = 5; int result = binary_search(arr, n, target); if (result != 1) { printf(“元素 %d 在数组中的索引为 %d “, target, result); } else { printf(“元素 %d 不在数组中 “, target); } return 0; },#include <stdio.h> int interpolation_search(int arr[], int n, int target) { int left = 0; int right = n 1; while (left <= right && target >= arr[left] && target <= arr[right]) { if (left == right) { if (arr[left] == target) { return left; // 返回目标值的索引 } else { return 1; // 如果没有找到目标值,返回1 } } // 计算插值的位置 int pos = left + ((target arr[left]) * (right left)) / (arr[right] arr[left]); if (arr[pos] == target) { return pos; // 返回目标值的索引 } else if (arr[pos] < target) { left = pos + 1; } else { right = pos 1; } } return 1; // 如果没有找到目标值,返回1 } int main() { int arr[] = {1, 3, 5, 7, 9}; int n = sizeof(arr) / sizeof(arr[0]); int target = 5; int result = interpolation_search(arr, n, target); if (result != 1) { printf(“元素 %d 在数组中的索引为 %d “, target, result); } else { printf(“元素 %d 不在数组中 “, target); } return 0; },

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《查找函数怎么用c语言》
文章链接:https://zhuji.vsping.com/468466.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。