如下为代码

package system.test1;
import java.util.Arrays;
public class ytest {public static void main(String[] args) {int[] a = {6,5,3,4,7,9,10};Arrays.sort(a);System.out.println("排序后a[]为" + Arrays.toString(a));//{3,4,5,6,7,9,10}System.out.println("递归二分查找a[]中6的下标为"+ytest.binarysearch(a, 6, 0, a.length));int[] b={7,2,9,8,4,6,8};Arrays.sort(b);System.out.println("排序后b[]为" + Arrays.toString(b));System.out.println("非递归二分查找b[]中6的下标为"+ytest.binarysearch2(b,6));}public static int binarysearch(int[] b, int target, int fromindex, int endindex) {int mid = (fromindex + endindex) / 2;if (fromindex > endindex)return -1;if (b[mid] > target) {return binarysearch(b, target, fromindex, mid - 1);} else if (b[mid] < target) {return binarysearch(b, target, mid + 1, endindex);} else return mid;}public static int binarysearch2(int []b,int target){int start=0;int end=b.length-1;int mid;while(start<=end){mid=(start+end)/2;if(target<b[mid]){end=mid-1;}else if(target>b[mid]){start=mid+1;}else{return mid;}}return -1;}
}

运行结果如下

二分查找递归与非递归方式的实现相关推荐

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

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

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

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

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

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

  4. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)

    分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...

  5. 左神算法:分别用递归和非递归方式实现二叉树先序、中序和后序遍历(Java版)

    本题来自左神<程序员代码面试指南>"分别用递归和非递归方式实现二叉树先序.中序和后序遍历"题目. 题目 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点 ...

  6. 二叉树的三种遍历方式(递归、非递归和Morris遍历)

    二叉树的三种遍历方式(递归.非递归和Morris遍历) 原文:http://www.linuxidc.com/Linux/2015-08/122480.htm 二叉树遍历是二叉树的最基本的操作,其实现 ...

  7. 分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数

    分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数 #include #include #define MAXSIZE 50 typedef char datatype; typedef ...

  8. 递归折半查找法 c语言程序,折半查找法的递归和非递归形式

    /* 1.折半查找的查找过程是:先确定待查记录所在区间,然后逐步缩小范围至到找到或者找不到该记录为止. 2.折半查找的性能分析可以由判定树得出,折半查找在查找成功时给定值进行比较的关键字个数至多为⌊l ...

  9. golang二叉树的递归和非递归方式的前中后序遍历

    二叉树的递归和非递归方式中序遍历 方法一:递归 思路与算法 首先我们需要了解什么是二叉树的中序遍历:按照访问左子树--根节点--右子树的方式遍历这棵树() (前序和后序遍历方式一样,就是打印root节 ...

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

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

最新文章

  1. Python递归获取文件夹下面所有文件名字:
  2. 计算机什么时候学汇编,[计算机基础] 汇编学习(1)
  3. 轻松管理Win 2003的“远程桌面”
  4. python库整理:numpy 集合操作
  5. 做面板数据分位数回归模型_面板数据向量自回归模型
  6. 重读经典:《Deep Residual Learning for Image Recognition》
  7. python测试udp端口_zabbix上使用外部检查的方式监测公网tcp/udp端口开放情况
  8. 波形分析--DSRC 时间窗测量
  9. 如果粒子运动只受力影响,那么意识从何而来
  10. qq批量登录软件_20191228分享,雪藏了几天的软件合集分享,心痛一小编,开心一大家。...
  11. 【数学建模】CUMCM历年题分类
  12. vscode打开setting.json文件
  13. 【工作日记18】渗透测试之xml注入攻击、CRLF漏洞
  14. 自己动手实现@Autowired注解
  15. 数据分析——R语言基础操作(1)-数据表示和矩阵基本操作
  16. Android攻城狮认识ContextMenu
  17. 介绍一款非常好用的截图软件-《Snipaste》
  18. 计算商品总金额以及购物券总金额
  19. 为什么需要序列化总结
  20. Vue-cli3更改项目logo图标

热门文章

  1. Docker(十):Docker实战 Docker 安装 Nginx
  2. kali linux解密栅栏密码,犯罪大师上帝之眼答案最新
  3. 如何在vscode运行php代码_如何提高 PHP 代码的质量?
  4. 为了撩妹用Python做了一个办公小工具,她说棒极了
  5. Docker安全加固——利用LXCFS增强docker容器隔离性和资源可见性
  6. Python之匿名函数
  7. aidl生成java文件_Android Studio编写AIDL文件后如何实现自动编译生成
  8. centos7 python3.6升级到3.7_Centos7 升级python3,解决升级后不兼容问题
  9. java转义字符_Java入门 - 语言基础 - 13.Character类
  10. 竞态条件的赋值_《Java并发编程实战》读书笔记一:基础知识