算法练习day1——190318(二分查找)
1.二分查找
1.1非递归实现
public static int BinarySearch(int[] arr,int target) {int high=arr.length;int low=0;while(low<=high) {int mid=(low+high)/2;if(target==arr[mid])return mid;else if(target<arr[mid])high=mid-1;elselow=mid+1;}return -1;
}
1.2 递归实现
public static int BinarySearch(int[] arr,int high,int low,int target) { if(low<=high) {int mid=(low+high)/2;if(target==arr[mid])return mid;else if(target<arr[mid])return BinarySearch(arr,mid-1,low,target);elsereturn BinarySearch(arr,high,mid+1,target);} return -1;
}
注:递归调用时的return BinarySearch(...)
算法练习day1——190318(二分查找)相关推荐
- php二分查找算法时间复杂度,一个运用二分查找算法的程序的时间复杂度是什么...
一个运用二分查找算法的程序的时间复杂度是"对数级别".二分查找是一种效率较高的查找方法,算法复杂度即是while循环的次数,时间复杂度可以表示"O(h)=O(log2n) ...
- 经典算法之左边界二分查找法(俗称左边界二分搜索法)
经典算法之左边界二分查找法(俗称左边界二分搜索法) 文章目录 经典算法之左边界二分查找法(俗称左边界二分搜索法) 前言 一.什么左边界二分查找法? 二.代码实现 总结 前言 就算法而言,我们主要学习的 ...
- 经典算法之右边界二分查找法(俗称基本右边界二分搜索法)
经典算法之右边界二分查找法(俗称基本右边界二分搜索法) 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 经典算法之右边界二分查找法(俗称基本右边界二分搜索法) 前言 一.什 ...
- 【算法】详解二分查找算法(思路很简单,细节是魔鬼)
我周围的人几乎都认为二分查找很简单,但事实真的如此吗?二分查找真的很简单吗?并不简单.看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of ...
- LeetCode算法题4:二分查找及扩展应用
文章目录 前言 一.二分查找 二.第一个错误的版本 三.搜索插入位置 总结 前言 Leetcode算法系列:https://leetcode-cn.com/study-plan/algorithms/ ...
- 算法与数据结构之二分查找
一.两道LeetCode题 首先来两道算法题举例,来初步探讨二分查找 278.First Bad Version 先贴上代码 // Forward declaration of isBadVersio ...
- 小白的算法初识课堂(part1)--二分查找法
学习笔记 学习书目:<算法图解>- Aditya Bhargava 二分查找法 算法是一组完成任务的指令,任何代码片段都可视为算法.二分查找是一种算法,其输入是一个有序的元素列表(必须有序 ...
- 【数据结构与算法】task3 排序二分查找
排序 参考:https://github.com/wangzheng0822/algo/tree/master/python 归并排序 def merge_sort(a):_merge_sort_be ...
- python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)
在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...
最新文章
- RHEL\CentOS 7 下 MySQL 连接数被限制为214个
- mybatis 传递set集合
- Cocos2d-x3.0 不规则Button
- 1024-程序员节快乐!给大家发福利啦!以及向大家讲述节日由来
- java 设计模式 示例_Java中的策略设计模式-示例教程
- 移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除
- 类和对象编程(九):类的静态成员
- Package sqlite3 was not found in the pkg-config search path.add the directory containing `sqlite3.pc
- (转)互联网投顾平台的监管风险:和讯信息
- QML Item定位器 Anchor
- Sql server 中的bulk insert语句使用
- 阈值分割python实现
- 用计算机软件绘制思维导图,无需其他软件!用Word 2016快速制作思维导图
- matlab插值与拟合例题_[转载]MATLAB插值与拟合(1)
- Lambda表达式----“进化论”
- [大洋] Unity3D架构系列之- FSM有限状态机设计一至四
- 怎么设置html禁止直接打开,如何禁止网页自动跳转
- Geforce Experience无法登录的解决方法
- phpst安装memcache扩展_超简单的wordpress网站安装教程(基于phpstudy PHP环境)
- js中的经典题Foo.getName
热门文章
- php ob_flush 和flush
- c++Builder XE6 MD5 加密算法 BASE64 URL 编码
- 《UML用户指南第二版》再次温读笔记(一)(downmoon)
- 世纪佳缘,玫瑰和面包开始PK
- 【Python】 1055 集体照 (25 分)
- sealos包管理使用
- Ansible roles角色实战案例:httpd nginx memcached mysql
- kube-controller-manager 配置参数解读
- 【好文收藏】K8S集群部署CoreDNS服务
- Python Django 常用字段类型