117.info
人生若只如初见

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

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

#include 

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在数组中的位置。最终输出查找结果。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe8c4AzsICAZfDFQ.html

推荐文章

  • c语言goto用法是什么

    在C语言中,goto语句用于从一个位置跳转到另一个位置。它可以用于跳出循环、条件语句或者函数。goto语句的语法如下:
    goto label;
    ...
    label: //...

  • goto在c语言中的运用方法是什么

    goto 语句在 C 语言中允许程序从一个位置跳转到另一个位置。然而,在实际编程中,过度使用 goto 语句通常被认为是一种不好的编程实践,因为它可能导致代码结构混...

  • c语言堆和栈的区别是什么

    C语言中的堆和栈是两种不同的内存分配方式。 栈(Stack):栈是由编译器自动分配和释放的内存区域,用于存储局部变量和函数调用的上下文信息。栈的特点是先进后出...

  • C语言结构体数组怎么定义和使用

    在C语言中,可以通过定义结构体数组来存储多个具有相同数据类型的结构体对象。下面是定义和使用结构体数组的示例代码:
    #include // 定义一个结构体类型

  • java中如何获取get请求参数

    在Java中,可以通过HttpServletRequest对象来获取GET请求参数。可以使用以下代码来获取GET请求参数:
    import javax.servlet.http.HttpServletRequest; publ...

  • 数据库left函数的使用方法是什么

    LEFT函数用于从字符串的开头提取指定长度的字符。其基本语法如下:
    LEFT(str, length) 其中,str是要提取字符的字符串,length表示要提取的字符的长度。例如...

  • java中autowired的用途有哪些

    自动装配: @Autowired注解可以用来自动装配Spring容器中的Bean,无需手动编写getter和setter方法。 依赖注入:通过@Autowired注解,可以将依赖的Bean注入到目标...

  • python中text的使用方法是什么

    在Python中,文本(text)可以通过字符串(str)类型来表示和操作。字符串是Python中的一种数据类型,用于存储文本信息。字符串可以使用单引号(’ ‘)、双引号...