/** * 循环实现二分查找算法 */public static int binarySearch(int[] arr, int x){    int low = 0;    int high = arr.length - 1;    while(low <= high){        int middle = (low + high)/2;        if (x == arr[middle]){            return middle;        }else if(x < arr[middle]){            high = middle - 1;        }else{            low = middle + 1;        }    }    return -1;}

/** * 递归查找 */public static int binarySearchRecursive(int[] arr, int x, int startIndex, int endIndex){    int middle = (startIndex + endIndex) / 2;    //三个终止条件    if(x < arr[startIndex] || x > arr[endIndex] || startIndex > endIndex){        return -1;    }    if (x < arr[middle]){        return binarySearchRecursive(arr, x, startIndex, middle - 1);    }else if (x > arr[middle]){        return binarySearchRecursive(arr, x, middle + 1, endIndex);    }else{        return middle;    }}

转载于:https://www.cnblogs.com/whutwxj/p/9364589.html

【数据结构】二分查找相关推荐

  1. python算法与数据结构-二分查找算法

    二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难. 因此折半查找方法适用于不经常变动而查找频繁的有序列表. 递归实现二分查找,代码如下所示: ...

  2. 算法与数据结构 - 二分查找详解,会了吗?

    一.引言 相信很多小伙伴都和朋友做过一个小互动: 今天李雷和韩梅梅一起相约去逛街,期间李雷发现韩梅梅穿了一双限量款的球鞋. 李雷: 韩同学,你这双鞋好漂亮哦,在哪里买的呢? 韩梅梅: 这是我在莆田的网 ...

  3. 数据结构之二分查找(折半查找)

    数据结构之二分查找(折半查找) 二分查找又称折半查找,优点是次数比较少,查找速度快,平均性能好,其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先 ...

  4. 数据结构与算法:二分查找

    二分查找是搜索算法中的一种,用来搜索有序数组 二分查找: 是一种简单算法,其输入是一个有序的元素列表(必须有序的原因稍后解释).如果要 查找的元素包含在列表中,二分查找返回其位置:否则返回null. ...

  5. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  6. 数据结构源码笔记(C语言):二分查找

    //实现二分查找的算法#include<stdio.h> #include<malloc.h> #include<malloc.h>#define MAXL 100 ...

  7. 数据结构-顺序查找的二分查找法(折半查找)

    折半查找要求顺序表中的元素必须是排好序的,即数组中的元素是由小到大排好序的 思想: 1.以数组的边界确定low和high的值,low就是最低的0,high就是最高的n-1(n是元素的个数),这里的lo ...

  8. 算法与数据结构(python):线性查找与二分查找

    提示:提示:专栏解锁后,可以查看该专栏所有文章. 文章目录 查找 线性查找 1普通线性查找 2递归线性查找 二分查找 1普通二分查找 2递归二分查找 查找 查找可以说是我们业务代码里用得最多的操作,比 ...

  9. 数据结构---顺序查找和二分查找

    数据结构-顺序查找和二分查找 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> int n;//查找元素数组的长度 vo ...

  10. 【数据结构与算法】二分查找

    一.什么是二分查找? 二分查找针对的是一个有序的数据集合,每次通过跟区间中间的元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间缩小为0. 二.时间复杂度分析? 1.时间复杂度 ...

最新文章

  1. memcached原理详述及配置
  2. asp.net % = #区别
  3. 博客转向 github pages
  4. 数据结构与算法学习-开篇
  5. 搭建sql注入实验环境(基于windows)
  6. 全向轮底盘磁导轨寻迹
  7. [配置]VUE中通过process.env判断开发,测试和生产环境,并分环境配置不同的URL HOST
  8. 全球首发!计算机视觉Polygon Mesh Processing总结9——Triangle-Based Remeshing
  9. 第五讲计算结果的可视化
  10. 雷曼兄弟 算法_雷曼如何失去双腿
  11. 代做assignment分享高分Essay写作攻略
  12. android绘制半圆弧线_半圆形进度条Android - 绘制半圆
  13. java实现gdal栅格矢量化_gdal栅格矢量化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...
  14. VUE+VSCODE(新建一个项目)
  15. 用友U8 cloud再升级,为成长型集团注入数智新力量
  16. 《数据统计分析及R语言编程(第二版)》练习题总结(一)
  17. vite打包快几款基于vue3和vite的开箱即用的中后台管理模版
  18. 802.11a/g/n下子载波数量、子载波间隔、数据速率的相关问题
  19. 900页数学论文证明旋转的黑洞不会爆炸,丘成桐:30多年来广义相对论首次重大突破...
  20. 101/103/104规约应用典型问题例举【转】

热门文章

  1. python socket代码_python入门之socket代码练习
  2. mysql存储过程含义_MySQL存储过程定义中的特性(characteristic)的含义
  3. 用mysql做文本挖掘_手把手教你做文本挖掘
  4. linux下查询端口,进程的状态以及netstat的参数意义
  5. php中的interface和implements及其他
  6. 【深度学习入门到精通系列】 深入浅出强化学习 Sarsa
  7. python【力扣LeetCode算法题库】15- 三数之和
  8. python【蓝桥杯vip练习题库】ALGO-10集合运算
  9. 说一说安装sklearn遇到的坑
  10. 景区ota常遇问题_景区票务管理系统能给景区带来销售业绩,你知道这些功能ma?...