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



  • 相关阅读:
    CORS跨域资源共享漏洞
    Linux Restricted Shell Bypass
    无情一点并没有错
    [机器学习]numpy broadcast shape 机制
    Chrome和IE的xss过滤器分析总结
    php使用substr中文乱码问题
    mac下自定义伪协议配置
    【转】前端黑魔法之远程控制地址栏
    Windows可信任路径代码执行漏洞
    小记一次mysql启动失败没有日志的处理
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/1192569.html
Copyright © 2011-2022 走看看