递归:

int BinSearch(int Array[],int low,int high,int key/*要找的值*/)  
 {  
     if (low<=high)  
     {  
         int mid = (low+high)/2;  
         if(key == Array[mid])  
             return mid;  
         else if(key<Array[mid])  
             return BinSearch(Array,low,mid-1,key);  
         else if(key>Array[mid])  
             return BinSearch(Array,mid+1,high,key);  
     }  
     else  
         return -1;
}

非递归:

int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)

{  
    int low=0,high=SizeOfArray-1;  
    int mid;  
    while (low<=high)  
    {  
        mid = (low+high)/2;  
        if(key==Array[mid])  
            return mid;  
        if(key<Array[mid])  
            high=mid-1;  
        if(key>Array[mid])  
            low=mid+1;  
    }  
    return -1;  
}

转载于:https://www.cnblogs.com/g0feng/archive/2012/05/15/2502106.html

二分查找的递归与非递归!相关推荐

  1. C语言(CED)查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素。(递归实现)

    (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 一.题目大意 查找最接近的元素(分治法/二分查找):在一 ...

  2. JAVA常用算法一:二分查找【递归 or 非递归】

    文章目录 一.Java实现二分查找[递归] 二.Java实现二分查找[非递归] 三.测试 一.Java实现二分查找[递归] //递归使用二分查找public static int binarySear ...

  3. 算法006:二分查找 递归、非递归

    题目: 已知一个有序数组arr 给定需要搜索的元素,返回索引,若无则返回-1思路: 递归和非递归 1.代码如下 BinSearch .java: package com.yuhl.right;/*** ...

  4. (C语言)BinarySearch二分搜索/折半查找 --- 递归、非递归

    1 /*2 * FILE: BinarySearch.C3 * DATE: 201803064 * ==============5 * DESCRIPTION: 折半查找_递归.非递归实现6 * 二分 ...

  5. 二分查找的循环实现和递归实现

    自己实现了二分查找的循环实现和递归实现 说明:二分查找适用于顺序存储结构,不适于链式存储结构,是一个高效的查找方法.虽然折半查找效率高,但是要排序,排序本身是一种很费时的运算.     要求传入的表是 ...

  6. C#实现(递归和非递归)快速排序和简单排序

    C#实现(递归和非递归)快速排序和简单排序 本人因为最近工作用到了一些排序算法,就把几个简单的排序算法,想冒泡排序,选择排序,插入排序,奇偶排序和快速排序等整理了出来,代码用C#代码实现,并且通过了测 ...

  7. 二叉树创建及遍历算法(递归及非递归)(转)

    //二叉树处理头文件 //包括二叉树的结构定义,二叉树的创建,遍历算法(递归及非递归), /* 作者:成晓旭 时间:2001年10月7日(18:49:38-20:00:00) 内容:完成二叉树创建,二 ...

  8. 二叉树的先中后序递归和非递归遍历(数据结构作业)

    一.设计思想 我创建二叉树是用的先序创建,其中用'#'代表空节点. 1.递归先序遍历 (1)如果当前节点为空节点(用'#'代表空节点),结束当前函数 (2)打印当前节点 (2)递归当前节点的左子树 ( ...

  9. 树的递归与非递归遍历算法

    树的递归与非递归遍历算法 树的递归与非递归遍历算法 树的遍历 实例 树遍历的口诀 树的递归遍历代码 树的先序遍历 树的中序遍历 树的后序遍历 递归遍历思想 树的非递归遍历 树的先序非递归遍历 先序遍历 ...

  10. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

最新文章

  1. 15道谷歌面试题及答案
  2. html转word并保持格式不变,表格从Word转Excel想保持格式不变?用这两种方法,保你轻松搞定...
  3. python - hadoop,mapreduce demo
  4. web服务器的简单实现——HTTP权威指南读书心得(七)
  5. System.Threading.Timer 定时器的用法
  6. 本地添加Maven管理
  7. 4月份西部数码.wang域名注册量报告:增速严重缩水
  8. 原来这就是Java中的模板设计模式,太easy太实用了!
  9. java正则表达式yyyymmdd_正则表达式校验YYYYMMDD日期格式
  10. 深度学习中的激活函数
  11. matlab data数据类型,MATLAB - 数据类型
  12. 小额批量支付系统可以完成跨行资金清算吗_今天,你转账了吗?带你看懂央行小额批量支付系统...
  13. 上海移动视频客户端 for 8910
  14. Twitter 没有在美国总统竞选期间宕机
  15. Effective C++记录(6):Explicitly disallow the use of compiler-generated functions you do not want
  16. 论文阅读 点云动态图卷积(DGCNN)
  17. All The Elements Pronounced in Order (American English)
  18. idea 启动多个项目 减少内存占用
  19. linux下查看服务器的cpu、内存大小、硬盘大小
  20. 腾讯校招课堂|程序员如何在腾讯完成自己的“游戏梦”

热门文章

  1. mysql+phpMyAdmin错误解决:bug #4813 MySQL 5.7.6 and the Users menu tab
  2. java模型给泛型_java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
  3. 加载中...loading... 图片_搞笑图片:小子这就是你单身的原因...
  4. Java与汽车_Java NIO:IO与NIO的区别
  5. linux内核2018,CVE-2018-1000001 linux kernel
  6. 计算机控制技术在线,西交19春《计算机控制技术》在线作业【标准答案】
  7. dev 居中_div居中 div水平居中代码 | 帮助信息-动天数据
  8. 下面不是python合法标识符_哪个不是python合法标识符
  9. java高并发(五)并发模拟
  10. hadoop 2.7.3