首页主机资讯c语言怎么用递归实现二分法查找

c语言怎么用递归实现二分法查找

时间2024-03-18 17:18:03发布访客分类主机资讯浏览1430
导读:下面是使用递归实现二分法查找的C语言代码示例: #include <stdio.h> int binarySearch(int arr[], int low, int high, int key { if (low...

下面是使用递归实现二分法查找的C语言代码示例:

#include stdio.h>


int binarySearch(int arr[], int low, int high, int key) {
    
    if (low >
 high) {
    
        return -1;
 // key not found
    }
    
    
    int mid = low + (high - low) / 2;

    
    if (arr[mid] == key) {
    
        return mid;
 // key found at index mid
    }
 else if (arr[mid]  key) {
    
        return binarySearch(arr, mid + 1, high, key);
 // search in the right half
    }
 else {
    
        return binarySearch(arr, low, mid - 1, key);
 // search in the left half
    }

}


int main() {

    int arr[] = {
2, 4, 6, 8, 10, 12, 14, 16}
    ;
    
    int n = sizeof(arr) / sizeof(arr[0]);
    
    int key = 10;
    
    
    int index = binarySearch(arr, 0, n - 1, key);

    
    if (index != -1) {
    
        printf("Element found at index: %d\n", index);

    }
 else {
    
        printf("Element not found\n");

    }
    
    
    return 0;

}
    

在上面的代码中,binarySearch函数使用递归的方式实现了二分法查找。函数接受一个整型数组arr、查找范围的起始下标low、结束下标high和要查找的关键值key作为参数。函数首先计算中间元素的下标mid,然后分别判断arr[mid]key的大小关系,根据不同情况选择在左半部分或右半部分继续查找,直到找到目标元素或查找范围为空。

main函数中,我们定义了一个整型数组arr,并调用binarySearch函数来查找key=10在数组中的位置。最终输出查找结果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c语言怎么用递归实现二分法查找
本文地址: https://pptw.com/jishu/648723.html
vendor分区扩容的方法是什么 数据库left函数的使用方法是什么

游客 回复需填写必要信息