“二分查找”算法的时间复杂度
算法的时间复杂度无非就是for、while等包含起来的基本运算单元的循环次数
1、二分查找
二分查找(binary search),也称作折半查找(half-interval search),每次划分一半进行下一步搜索,所以时间复杂度无非就是while循环的次数!
//二分查找 Java 实现
public static int binarySearch(Integer[] srcArray, int des) {int low = 0;int high = srcArray.length - 1;while ((low <= high) && (low <= srcArray.length - 1)&& (high <= srcArray.length - 1)) {int middle = (high + low) >> 1;if (des == srcArray[middle]) {return middle;} else if (des < srcArray[middle]) {high = middle - 1;} else {low = middle + 1;}}return -1;
}
2、时间复杂度
比如:总共有n个元素,每次查找的区间大小就是n,n/2,n/4,…,n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。
由于n/2^k取整后>=1,即令n/2^k=1,
可得k=log2n,(是以2为底,n的对数),所以时间复杂度可以表示O()=O(logn)
“二分查找”算法的时间复杂度相关推荐
- python二分查找时间复杂度_二分查找算法的时间复杂度计算(logN)
二分查找算法的时间复杂度计算(logN) 马富天 2019-08-10 20:25:24 54 [摘要]二分查找算法是对顺序查找算法的优化,二分查找算法的前提是数列是一个有序数列,递增或者递减,本文就 ...
- 二分查找算法及其变种
前言 二分查找算法也称为折半查找算法,是一种在查找算法中普遍使用的算法.其算法的基本思想是:在有序表中,取中间的记录作为比较关键字,若给定值与中间记录的关键字相等,则查找成功:若给定的值小于中间记录的 ...
- list 查找_五千字长文带你学习 二分查找算法
点击上方"与你一起学算法",选择"星标"公众号 重磅干货,第一时间送达 二分查找的思想 提及二分查找算法,我想大部分人都不陌生,就算不是学计算机的,基本上也都使 ...
- 二分查找算法详解(经典二分和左右边界查找)
目录 二分查找算法 1. 二分查找算法框架 2. 经典二分查找算法 问题1. 为什么while循环中使用<=号而不是用<号,右边区间right为什么要对数组大小减一? 问题2. 为什么 l ...
- python 二分查找算法实现
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1 二分查找算法的时间复杂度是O( ...
- php二分查找算法时间复杂度,一个运用二分查找算法的程序的时间复杂度是什么...
一个运用二分查找算法的程序的时间复杂度是"对数级别".二分查找是一种效率较高的查找方法,算法复杂度即是while循环的次数,时间复杂度可以表示"O(h)=O(log2n) ...
- 顺序查找与二分查找算法
顺序查找算法 顺序查找是非常简单常用的查找算法,基本思路:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1.该算 ...
- 二分查找算法+代码(通俗易懂简洁扼要)
知乎原文出处二分查找算法+代码(通俗易懂简洁扼要) - 知乎 欢迎关注我的知乎账号:进击的steve - 知乎 二分查找是一个可以把单值查找时间复杂度从O(n)降到O(logn)的算法. 二分查找的前 ...
- 二分查找算法详细汇总
二分查找算法详细汇总 文章目录 二分查找算法详细汇总 二分查找算法介绍模板 算法思想 举例说明 模板实现 (1)递归方式实现 (2)非递归方式实现 二分查找问题相关难点问题1[前缀和 + 二分查找 + ...
最新文章
- 开发工具之pycharm 快捷键说明
- ubuntu 20上安装gdbgui
- leetcode669. 修剪二叉搜索树
- flex java 上传下载_完整的Flex多文件上传实例
- A加载B,B发生的变化
- [Bzoj3252]攻略(dfs序+线段树)
- Lasergene DNASTAR 8.1.3 特别版 Mac 专业的医学生物综合性序列分析工具
- 数理统计复习笔记六——Pearson卡方拟合优度检验
- GPRS通信原理+中国移动micro sim 卡,实现经过tcp/ip 传输数据到服务器
- 大数据智能推荐系统原理介绍
- “TikTok+独立站”模式熟了?看Anker如何玩转社交私域流量导流独立站?
- 鸿蒙IPC摄像机,【HiSpark IPC DIY Camera试用连载 】第二篇 视频的人脸检测
- SMS注册与接收短信
- 正向代理与反向代理通俗版解释
- Raspberry Pi 3b+制作24小时热点
- ES esrally 部署
- Jquery项目中使用vue.js和element-ui
- 树莓派raspberry搭建打印cups服务器连接EPSON_L360打印机供ios安卓使用
- linux 退出终端仍运行进程 日志输出,后台执行任务,不在终端打印信息
- 【Flink系列】窗口系列简介