从今天开始,博主准备开始一段常见算法的学习,算法实现使用Python3,希望坚持下去^_^

alg1:二分查找法

1、运行时间
二分查找相比于依次查找,查询速度提升明显:
+ 依次查找:O(n)
+ 二分查找:O(logn)

n表示候选数的数目;O(logn)实际代表找到目标数需要的查询次数;实际上查询次数可以大概代表运行时间

2、适用场景

排好顺序的列表(python)

3、代码实现

from random import randintdef search(list1,target):low = 0high = len(list1) - 1while low < high:mid = int((high + low) / 2)guess = list1[mid]if guess < target: #+1非常关键,是最终退出循环的决定因素low = mid + 1elif guess > target:high = mid -1else:return midreturn None
#生成随机顺序列表
mylist = [i for i in range(1,100) if randint(0,1)]
print(mylist)
print(search(mylist,10))
print(search(mylist,11))

4、几个基础概念

每天5分钟玩转python3算法:二分查找法相关推荐

  1. java 二分查找_计算机入门必备算法——二分查找法

    1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...

  2. NTC测温中 经典温度查表算法--二分查找法

    说明: 二分查找法的优点:查找速度快 1024个长度的表最长只需10次查表就能得出结果 在用NTC测试温度的方案中,NTC的温度表的长度一般是100-200 有些达到400-500的长度 在这种情况下 ...

  3. 折半查找算法[二分查找法]算法的实现和解决整数溢出问题~

    算法实现的要求: 折半查找法又称为二分查找法,这种方法对待查找的列表有两个要求: 1:必须采用顺序存储结构 2:必须按关键字大小有序排列 算法思想: 将表中间位置记录的关键字与查找关键字进行比较,如果 ...

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

    1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: 1 package Test; 2 3 import java.util.Arrays; 4 5 public clas ...

  5. 每日一则----算法----二分查找法

    php实现二分查找法 二分查找法称折半查找,需要数组是一个有序的数组 假设我们的数组是一个递增的数组,首先我们需要找到数组的中间位置. 要知道中间位置就需要知道起始位置和结束位置,然后取出中间位置的值 ...

  6. 每天5分钟玩转python3算法:选择排序

    alg2:选择排序法 1.运行时间 O(n*2)> 单次查找最小/大元素耗时O(n),排出一个有序列表需要进行n次操作, 平均耗时O(n*n)==O(n*2) 2.使用场景 可运用于无序列表,但 ...

  7. 小白的算法初识课堂(part1)--二分查找法

    学习笔记 学习书目:<算法图解>- Aditya Bhargava 二分查找法 算法是一组完成任务的指令,任何代码片段都可视为算法.二分查找是一种算法,其输入是一个有序的元素列表(必须有序 ...

  8. Python 关于下标的运用技巧(二分查找法,冒泡、选择、插入、归并、快速排序算法)

    二分查找法(折半查找法)的递归实现 二分查找法(折半查找法):用于预排序列表的查找问题, 再次强调,二分查找法要配合排序使用,只有排好序,才能使用二分查找法 而且,待查找列表如果有重复值,只能查找到其 ...

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

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

最新文章

  1. 近两年的生物医学突破研究,颠覆你前20年基础所学
  2. 02-导航实例-storyboard实现
  3. python代理池好难啊_新人不会自己搭建代理池?快来引用大佬的
  4. shiro学习(4):shiro认证流程
  5. 数据库中char, varchar, nvarchar的差异
  6. Android 线程池对象-ThreadPoolExecutor浅析
  7. input Type
  8. 表单的管理作业及答案
  9. Eclipse的.properties文件输出中文成unicode编码
  10. spring mvc mvc:default-servlet-handler / 。
  11. 照着教程装oracle却报错,手把手演示win7系统安装oracle10g程序遇到“程序异常终止。发生内部错误...”的操作教程...
  12. php数据库根据手机号获取归属地,PHP通过API获取手机号码归属地
  13. dos2unix离线安装
  14. MATLAB数据类型及转换
  15. 8000计算机论文范文,计算机毕业论文_计算机论文范文8000字_毕业论文8000字范例...
  16. 学计算机cpu重要还是显卡重要,电脑玩游戏CPU重要还是显卡更重要?
  17. 华为数通笔记-策略路由
  18. c语言数字转换为字符串补位,String字符串补位
  19. js原型、原型链、原型链继承详解
  20. Xcode:崩溃堆栈符号化,定位崩溃

热门文章

  1. Qt中用ODBC连接excel中文乱码问题
  2. MYSQL表根据列拆分的问题
  3. 查询表的列名,字符类型
  4. C# 动态调用webservice代码
  5. OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)...
  6. Spark源码分析 – DAGScheduler
  7. iOS开发那些事-表视图UI设计模式
  8. Delphi StringGrid控件的属性及使用说明
  9. 快速获取OpenCV库(Lib)文件下的所有文件的目录名~
  10. OpenCV各个模块/各个文件夹的含义