zoukankan      html  css  js  c++  java
  • 拆半查找的递归和非递归算法

    本文为原创,如需转载,请注明作者和出处,谢谢!

    #include <stdio.h>  

    int binary_search(int x, int data[], int b, int e) 
    {     
        
    int i;     
        
    while(b <= e)     
        {     
            i 
    = (b + e) / 2;     
            
    if(data[i] == x) return i;     
            
    if(data[i] < x)          
                b 
    = i + 1;     
            
    else         
                e 
    = i - 1;             
        }     
        
    return -1;     
    }  

    int binary_search_recursion(int x, int data[], int b, int e) 
    {     
        
    int i;     
        i 
    = (b + e) / 2;     
        
    if(b > e) return -1;     
        
    if(data[i] != x)     
        {     
            
    if(x < data[i])         
                
    return binary_search_recursion(x, data, 0, i - 1);     
            
    else         
                
    return binary_search_recursion(x, data, i + 1, e);     
        }     
        
    else         
            
    return i; 
    }  

    int main() 
    {     
        
    int data[] = {14579};     
        printf(
    "%d \n", binary_search_recursion(9, data, 04));     
        printf(
    "%d \n", binary_search(9, data, 04));     
        printf(
    "%d \n", binary_search_recursion(90, data, 04));     
        printf(
    "%d \n", binary_search(89, data, 04));     
        
    return 0



  • 相关阅读:
    spring与redis集成之aop整合方案
    Spring Boot 属性配置和使用
    nexus REST API /artifact/maven/[resolve|redirect] returns unexpected for v=LATEST
    Nginx CORS实现JS跨域
    Spring Boot简介
    关于EOF:
    C语言的那些事
    基础常识
    数组
    基本语句结构
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/1192569.html
Copyright © 2011-2022 走看看