《算法图解》读书笔记-2 第一章 算法简介 二分查找算法(python实现代码)时间复杂度 旅行商问题

1.本章内容

  • 为阅读后续内容打下基础
  • 编写第一种查找算法——二分查找
  • 学习如何谈论算法的运行时间——大O表示法
  • 了解一种常用的算法设计方法——递归
    章节目录如下:
    在这里插入图片描述

2.章节引言

2.1 本书主要内容

什么是算法?
算法是一组完成任务的指令。
速度快/可以解决有趣的问题的算法是我们本书研究的重点:

  • 讨论二分查找&演示算法如何提高代码的速度。——第一章
  • GPS设备使用图算法来计算前往目的地的最短路径——第六七八章
  • 可以使用动态规划来编写下国际跳棋的AI算法——第九章
    介绍算法的方法:举例&提供实例 再使用大O表示法讨论其运行时间 最后探索它可以解决的其他问题。
    另外 本书将帮助我们

学习比较不同算法的优缺点——体会到改用不同的数据结构就可以让结果大不相同

2.2 问题解决技巧

本书将带我们学习一些问题解决技巧

  • 喜欢开发电子游戏? ——使用图算法编写跟踪用户的AI系统
  • 对推荐算法感兴趣? ——使用K最近邻算法编写推荐系统
  • 发现有些问题在有限时间是不可解的? ——学习NP完全问题 来识别这样的问题并且设计找到近似答案的算法
    总而言之——

读完本书 你将 熟悉一些使用最为广泛的算法。利用这些新学到的知识,你可以学习更具体的AI算法、数据库算法。

3.二分查找

3.1 什么是二分查找?

在这里插入图片描述
二分查找是一种算法,其输入是一个有序的元素列表
如果要查找的元素包含在列表中,二分查找返回其位置,否则返回null
在这里插入图片描述

3.2 二分查找的工作原理

随便想一个1-100的数字
在这里插入图片描述
目的:最少的次数猜到这个数字。
怎么做到呢?
是这种方法么?
在这里插入图片描述
nonono
这种方法才对哦
在这里插入图片描述
在这里插入图片描述
不管要猜1-100之间的哪个数字 在7次之内都能通过二分法猜到~
结论:

对于包含n个元素的列表 用二分查找最多需要在这里插入图片描述

3.3 代码实现二分查找算法

函数binary_search接受一个有序数组要搜索的元素。如果此元素包含在数组中,这个函数将返回其位置。
具体逻辑如下:
在这里插入图片描述

def binary_search(list, item):
    low = 0
    high = len(list) - 1
    #low 和 hi
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值