《趣学算法》读书笔记

news2024/10/6 6:00:30

内容摘要

主要介绍我对本书的一些自我感觉比较亮点地方的总结。

第一章

算法

  • 算法有两条线索,数据结构、算法策略。
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 最坏情况对衡量算法的好坏具有实际意义。
  • 在这里插入图片描述

算法特性

在这里插入图片描述

时间复杂度

在这里插入图片描述

常见算法时间复杂度
  • 在这里插入图片描述
  • 在这里插入图片描述
时间复杂度的渐进上界

在这里插入图片描述

渐进精确界

用渐进上界和渐进下界逼近,在这里插入图片描述

空间复杂度

在这里插入图片描述

递归

  • 递归包括递推和回归。
  • 递推是将原问题不断分解成子问题,直到达到结束条件,返回最近子问题的解;然后逆向逐一回归,最终到达递推开始的原问题,返回原问题的解。

后进先出。

数学知识

斐波那契数列

在这里插入图片描述

斐波那契数列和黄金分割比的关系:

在这里插入图片描述

第二章

贪心算法

在这里插入图片描述

贪心算法特性

贪心选择性质
  • 原问题的整体最优解可以通过一系列局部最优解的选择得到。
  • 原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前最佳的选择。
  • 选择依赖于已做出的选择,但不依赖于未作出的选择。
  • 程序的运行过程中无回溯过程。
最优子结构性质

一个问题的最优解包含其子问题的最优解。

贪心算法案例

冒泡排序采用了贪心算法。

背包问题

在这里插入图片描述

创建栈

在这里插入图片描述

正态分布

大部分数据呈现正态分布,因此遍历是不合理的。

最小生成树

  • 权值最小的生成图。
  • 离散数学无向连通图相关知识。

避圈法

  • 在这里插入图片描述
  • 在这里插入图片描述

Kruskal算法和Prim算法

在这里插入图片描述

第三章

快速排序(sort)

快排原理

向左走、向右走,直到重合,重复此过程。

快排特点

  • 分解难,合并易。
  • 先难后易。
  • 原地排序。

排序复杂度

在这里插入图片描述

合并排序(归并排序)

合并排序特点

  • 分解容易,合并难。
  • 先易后难。
  • 需要辅助空间(辅助数组),异地排序。

排序算法效率

在这里插入图片描述

大整数乘法

  • 分治。
  • 乘法运算采用倒序保存结果。

时间复杂度

在这里插入图片描述

空间复杂度

在这里插入图片描述

四次乘法变三次乘法

在这里插入图片描述

时间复杂度变化

在这里插入图片描述

注意事项

在这里插入图片描述

第四章

动态规划

最优子结构

在这里插入图片描述

子问题重叠

在这里插入图片描述

如何使用动态规划

在这里插入图片描述
在这里插入图片描述

编辑距离

在这里插入图片描述

构造最优解

在这里插入图片描述

二叉搜索树

在这里插入图片描述

最优二叉搜索树

在这里插入图片描述

最优二叉树的最优值递归式(动态规划的查表法)

在这里插入图片描述

搜索成本(平均比较次数)

在这里插入图片描述

  • 关键字结点的搜索成本 在这里插入图片描述
  • 每个实结点的搜索成本=结点的深度*搜索概率。
  • 虚结点的搜索成本
  • 在这里插入图片描述
  • 每个虚结点的搜索成本=结点的深度*搜索概率。
搜索概率

在这里插入图片描述

第五章

回溯法

  • 在这里插入图片描述
  • List item

隐约束(剪枝函数)

  • 在这里插入图片描述
  • 在这里插入图片描述
约束函数和限界函数
  • List item
  • List item

时间复杂度

  • 在这里插入图片描述

n皇后

  • 以行为主导
  • 在这里插入图片描述
  • List item

最优加工顺序

在这里插入图片描述

贝尔曼规则

在这里插入图片描述

第六章

贪心策略对购物车问题的缺陷

在这里插入图片描述

队列

此类问题可以用队列(先近先出)解决

回溯法与分支限界法

在这里插入图片描述

第七章

线性规划

处理线性规划问题

在这里插入图片描述

单纯形表

特殊位置

在这里插入图片描述

  • 在这里插入图片描述
单纯形算法

将目标函数由非基本变量表示

最大网络流

在这里插入图片描述

可行流

  • 容量约束
  • 流量守恒

残余网络

在这里插入图片描述

附录F

四边不等式

在这里插入图片描述

本书免费访问路径

  1. https://gateway.pinata.cloud/ipfs/bafykbzaceauicbfg6xaw22pjmb7p75u4qrwiu77c4kgqwwy2gpwcvnr3v3ea4?filename=%E8%B6%A3%E5%AD%A6%E7%AE%97%E6%B3%95.pdf

  2. https://www.cnblogs.com/aerer/p/9931040.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈监控易运维系统在金融信创国产化中的使用

自2019年,国家明确信创产业将成为拉动经济发展的重要途径和崭新动能以来,全行业进入一个高速发展新阶段。此前倡导的“28”安全可控体系,其中在8大基础行业中,金融行业信创产品推广成为重中之重。金融行业信创,是为解决行业本质安…

ENVE5.3安装与汉化(一次性安装成功附安装包)

目录 1.安装包下载 2. 软件安装 3. ENVI5安装目录说明 1.安装包下载 链接:https://pan.baidu.com/s/1dp2ucQa3DMHLYpw239-_vA?pwd6944 提取码:6944 2. 软件安装 安装前注意事项: 安装全程断网;下载、解压和安装都应该在英文…

【电商】订单信息与状态流转

前言订单产生后,接下来会继续进行一系列流转,最后送到用户手里。在每个环节都有对应的操作,数据信息也要求其完成性,可以根据订单的每个状态变化,来计算分析,进而进行优化供应链路径,以提升订单…

三勾商城JAVA多商户配置发布

admin、shop、supplier端测试: 账号/密码均为admin/123456 后端vue目录 1、jjj_shop_multi_admin> 对应saas端,后台访问地址/admin。2、jjj_shop_multi_shop> 对应商城管理端,后台访问地址/shop。2、jjj_shop_multi_supplier> 对应供…

Linux---Kernal与Shell讲解

目录 Shell简介 什么是Shell Shell分类 内核Kernal Shell简介 什么是Shell 我们首先需要知道一台完整的计算机是由硬件组成的,而人不可以直接与硬件交互,为了完成交互,进行了以下的操作 将硬件设备交由内核管理,给硬件套个内…

【golang】1797. 设计一个验证系统

你需要设计一个包含验证码的验证系统。每一次验证中,用户会收到一个新的验证码,这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新了,那么它会在 currentTime (可能与之前的 currentTime 不同)时…

微信小程序开发你可能不知道的开发技巧

1. 页面级data,组件data的查看 页面级data的查看,很多开发者应该都知道;组件级的数据查看我是开发了大半年才发现的; 页面级的data查看: 组件的data查看: 2. 放大模拟器【调整一些UI细节】 效果&#x…

2023.2.9学习记录 Doker 三大组成 镜像 容器 仓库(包 镜像是类 容器是对象)

内核级虚拟化技术 同一份Redis镜像可以生成几个不同的容器 Doker学习 基于go语言 一次配置好镜像文件 换到别的机器上就能正常运行 Doker是什么? 解决了运行环境配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术 Doker没有出现…

FedLCM:统一的联邦学习生命周期管理平台

VMware 云原生实验室团队在上周开源发布了联邦学习的生命周期管理项目 FedLCM 并贡献到 LF AI & DATA 基金会和 FATE 开源社区。 联邦学习是人工智能与数据领域中最为火热的方向之一,作为社区期待已久的项目,FedLCM 从包含多个参与方的联邦的维度&a…

尚硅谷电商数仓5.0(华为云服务器)主机初期基本配置

文章目录服务器配置信息:注意事项:1.购买注意事项:2.后期使用注意事项:三台主机的基本配置服务器配置信息: 使用了两个账号,账号1买了两个服务器,一台4核8G,一台2核4G,账…

ESP32设备驱动-LED控制器生成PWM信号

LED控制器生成PWM信号 文章目录 LED控制器生成PWM信号1、LED控制器介绍2、软件准备3、硬件准备4、代码实现PWM 是一种在数字引脚上获取类似模拟信号的方法。PWM实际上是一个在高电平和低电平之间切换的方波信号,在 0V 和 3.3V 之间。 当信号为 HIGH 和 LOW 时,这种连续的 HIG…

【物联网开发教程】机智云App远程和开发板聊天

一、实现的功能描述 小程序远程和开发板相互发送字符串信息。 电脑端串口调试助手发送字符串 --> 开发板 --> 小程序小程序发送字符串 --> 开发板 --> 电脑端串口调试助手二、 UI配置描述 本例程中所包含的UI配置代码如下: UI "[0_RecvText][…

前端插件重磅来袭

“你值得拥有”专栏系列上新啦,今日推出“手写前端插件”项目,作为一个前端中高级工程师,手写前端树形菜单插件、弹出层插件、日历插件、分页插件、选项卡插件、进度条插件等是必备的技能,让你的前端技术百尺竿头更进一步&#xf…

2022年饮用水行业电商销售数据:年销额近30亿,头部品牌份额超85%

近日,农夫山泉发布了一则涨价通知。根据通知,农夫山泉上调了杭州市部分规格桶装水售价,涨幅10%。此前,农夫山泉也曾在上海地区对桶装水进行提价。对于本次提价原因,农夫山泉表示主要是物价、原材料、人工及运费等成本不…

MySQl学习(从入门到精通15)

MySQl学习(从入门到精通15)第 18 章_MySQL 8 其它新特性1. MySQL 8 新特性概述1. 1 MySQL 8. 0 新增特性1. 2 MySQL 8. 0 移除的旧特性2. 新特性 1 :窗口函数2. 1 使用窗口函数前后对比2. 2 窗口函数分类2. 3 语法结构2. 4 分类讲解1. 序号函…

JavaScript 面向对象编程

js 实例对象与 new 命令js 对象的继承es6 classes6 class的继承 1 面向对象编程 面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。 它将真实世界各种复杂的关系,抽象为一个个对象,然后由…

第四章.误差反向传播法—ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现

第四章.误差反向传播法 4.2 ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现 1.ReLU层 1).公式 2).导数&#xff1a; 3).计算图&#xff1a; 4).实现&#xff1a; class ReLU:def __init__(self):self.mask None# 正向传播def forward(self, x):self.mask (x < 0) # 输入…

【深度学习基础7】预训练、激活函数、权重初始化、块归一化

一、Unsupervised Pre-training 得益于 Hinton and Salakhutdinov 在 2006 年的开创性工作— 无监督预训(unsupervised pre-training);在《Reducing the dimensionality of data with neural networks.》这篇论文中,他们在 RBMs 中引入无监督预训练,下面我们将在Autoenco…

RapperBot僵尸网络最新进化:删除恶意软件后仍能访问主机

自 2022 年 6 月中旬以来&#xff0c;研究人员一直在跟踪一个快速发展的 IoT 僵尸网络 RapperBot。该僵尸网络大量借鉴了 Mirai 的源代码&#xff0c;新的样本增加了持久化的功能&#xff0c;保证即使在设备重新启动或者删除恶意软件后&#xff0c;攻击者仍然可以通过 SSH 继续…

Qml学习——基本控件

最近在学习Qml&#xff0c;但对Qml的各种用法都不太熟悉&#xff0c;总是会搞忘&#xff0c;所以写几篇文章对学习过程中的遇到的东西做一个记录。 学习参考视频&#xff1a;https://www.bilibili.com/video/BV1Ay4y1W7xd?p1&vd_source0b527ff208c63f0b1150450fd7023fd8 目…