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



  • 相关阅读:
    SAP GUI中按F1后显示的帮助窗口为空白
    SAP事务代码之IMG设置
    RFC 同步异步调用实例
    SAP R/3 与其他异构系统集成时是否需要应用 SAP XI
    SAP 用户管理事务代码
    SAP 模块中文解释
    SAP Table 类型
    SAP System Tables
    开发SAP的语言
    IDOC 创建,增强,管理,配置
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/1192569.html
Copyright © 2011-2022 走看看