线性查找

def linear_search(data_set,value):for i in range(len(data_set)):if data_set[i]==value:return ireturn
print(linear_search([11,22,33,44,55,66],44))

线性查找,时间复杂度O(n)

二分查找

从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半

def binary_search(li,val):low=0high=len(li)-1while low <= high:mid=(low+high)//2if li[mid]>val:high=mid-1elif li[mid]<val:low=mid+1else:return midelse:return None
li=list(range(1000))
print(binary_search(li,305))

二分查找,循环减半的过程,时间复杂度O(logn)

总结

  • 二分查找虽然快,但是需要提前排好序,相当于一部分工作提前做了

参考

一看就懂-图解二分查找和线性查找 - 简书
https://www.jianshu.com/p/e5c6ea36869a

线性查找与二分查找入门相关推荐

  1. 线性查找法java代码_Java线性查找和二分查找

    Java线性查找和二分查找. 一 线性查找 定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程. 线性查找又称为顺序查找.如果查找池是某种类型的一个表,比如一个数组,简 ...

  2. java数组线性查找_数组查找: 线性查找与二分查找

    前言 从数组中查找你需要的数据,是一个很常见的需求,那么当你查找所需数据时,用什么方法查找速度最快? 本文将通过图文形式,详细讲解线性查找与二分查找,并用JavaScript将其实现,欢迎各位感兴趣的 ...

  3. Java数据结构与算法 线性查找和二分查找

    查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...

  4. Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找

    Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...

  5. 【Java数据结构与算法】第九章 顺序查找、二分查找、插值查找和斐波那契查找

    第九章 顺序查找.二分查找.插值查找和斐波那契查找 文章目录 第九章 顺序查找.二分查找.插值查找和斐波那契查找 一.顺序查找 1.基本介绍 2.代码实现 二.二分查找 1.基本介绍 2.代码实现 三 ...

  6. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  7. 折半查找(二分查找)

    折半查找(二分查找) 1.折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, 则搜索过程结束: ...

  8. 【Java】 查找数组中指定元素之 顺序查找 与 二分查找

    今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...

  9. 让你秒懂的折半查找(二分查找)

    折半查找又称二分查找,只能适用于有序的顺序表. //折半查找 int Bsearch(int R[],int low,int high,int key){int min;while(low<=h ...

  10. 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

     1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...

最新文章

  1. python利器怎么用-Python爬虫利器二之Beautiful Soup的用法
  2. Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
  3. ASMCMD 命令详解
  4. django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct
  5. 简单介绍Java中Comparable和Comparator
  6. 复制模式和扩展模式_扩展剂:模式还是反模式?
  7. 父组件和子组件同是使用 beforeDestroy 钩子 保存同一份数据
  8. python *args 和 **kwargs
  9. Java基础(七) 房屋出租系统
  10. 开发一个app多少钱啊?
  11. 安信可ESP8266开发环境搭建
  12. 教师资格证科目一的法律重点总结
  13. shopnc nodejs安装
  14. LVGL 7.8.1生成二维码例程
  15. 【微信小程序】-- 自定义组件 - 数据监听器 (三十四)
  16. pyautogui 鼠标键盘自动化 库的中文版
  17. 工作三年程序员收入到底多高?透露收入:网友:哇,真的好高呀!
  18. javase printwriter 打印流
  19. 想转行做大数据开发,求各路大神给指条明路?
  20. 安卓app单webview改为多webview加载网页

热门文章

  1. java在dos命令_JAVA中如何执行DOS命令
  2. windows系统bat批处 注册一个exe执行文件变成服务
  3. JavaScript+cesium 添加高德影像图和标注
  4. Uncaught ReferenceError: jie is not defined
  5. 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...
  6. andriod studio获取root_怎样获得root权限
  7. python关机怎样保存seek_在Python中操作文件之seek()方法的使用教程
  8. html target=_blank 弹出独立窗口,HTML base 标签的 target 属性 —— base target=_blank /...
  9. 计算机硬件调查PPT,调查报告 ppt
  10. 在linux中关于组的命令,linux 用户和组管理相关的命令