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语言结构体和联合体的区别是什么

    结构体和联合体在C语言中都是用来存储多个不同类型的数据的数据结构,但它们之间有一些重要的区别: 结构体(struct):结构体中的每个成员都有自己的内存空间,...

  • c语言中赋值表达式规则是什么

    在C语言中,赋值表达式的一般规则是右侧的值会被计算,并将结果赋给左侧的变量。赋值表达式的基本形式是:variable = expression;,其中variable是左侧的变量,e...

  • c语言联合体的使用方法是什么

    在C语言中,联合体(union)是一种特殊的数据结构,它允许不同的数据类型在相同的内存空间中存储。联合体的定义方式和结构体类似,但是联合体中的所有成员共享同...

  • c语言怎么实现鼠标交互

    在C语言中实现鼠标交互通常需要使用操作系统提供的图形库或者API。下面是使用Windows API实现鼠标交互的简单示例:
    #include LRESULT CALLBACK WindowProc(...

  • 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中的一种数据类型,用于存储文本信息。字符串可以使用单引号(’ ‘)、双引号...