【数据结构(邓俊辉)学习笔记】绪论04——算法分析

文章目录

  • 0. 前言
  • 1. 算法分析
  • 2.级数
    • 2.1基本形式
    • 2.2 收敛级数
  • 3.循环 vs 级数
  • 4.示例

0. 前言

通过以基本计算模型作为参照,并且以大O记号的形式在上面添加适当刻度,已经建立一套对DSA进行分析的完整工具和体系。不清楚的可以看看复杂度度量 、复杂度分析和递归分析
接下来学习下如何运用工具对DSA进行性能分析,包括其中主要思路和方法。与这套体系建立的思路类似,我们在具体运用这套体系的时候,依然要坚持去粗存精,最终的学习目标是能够达到自如驾驭和运用这套工具来完成去粗存精式的估算。

1. 算法分析

在这里插入图片描述
算法分析任务主要包括两方面内容,一是算法自身的正确性证明,下面会给出一种主要的办法,就是通过挖掘算法具有的不变性和单调性来证明。其次,是复杂度的分析和鉴定。
复杂度分析方法大概可以分为迭代递归猜测+验证

2.级数

2.1基本形式

在这里插入图片描述

2.2 收敛级数

在这里插入图片描述
级数中的各项会逐次递减,而且这种递减的速度足够快,以至于尽管每一项都是保持正数,但是总和不会超过某一个上界,虽然数值不同,但是从渐进意义上讲都可以视作常数。因此从大0记号角度看,都可以记作是O(1)。

每一项都是分数的级数有必要讨论吗?
假设某段代码的迭代循环可以等效地描述为硬币地投掷过程,正面概率为 λ \lambda λ,0 < λ \lambda λ < 1,反过来投掷反面地概率为1- λ \lambda λ。程序运行可能等效于不断投掷一枚硬币,直到第一次出现反面,算法复杂度取决于整个投掷过程中总共投掷了多少次硬币。解就是1/(1- λ \lambda λ )。 λ \lambda λ 是常数,所以复杂度是0(1)。

另一类级数虽然未必收敛,但是长度有限,以至于界会经常用到,典型地有两个调和级数(logn)对数级数(nlogn)

3.循环 vs 级数

如何分析代码段中所涉及地循环操作复杂度?
在这里插入图片描述
强记就OK
在这里插入图片描述
外部控制变量i从0变化到n,意味着内循环必然也是n趟,每一趟长度不是简单地0到i,等效于每一趟内循环地累计长度缩减到固定的2013分之一。

外循环控制变量每次都是加倍,换而言之,内循环长度j将以2为倍数,呈现出一个几何级数地形式,最大值由n决定。
在这里插入图片描述

4.示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过挖掘并且综合算法所具有地不变性和单调性,进而证明正确性地方法是算法分析地基本且重要的技巧。

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

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

相关文章

Mybatisplus LambdaQueryWrapper表达式使用DATE_FORMAT比较日期函数

背景&#xff1a; 最近遇到一个问题&#xff0c;数据库保存的日期字段是如下格式 但是我们需要比较的日期为 2020-08-01格式&#xff0c; 所以我们要将日期格式化 使用 Mybatisplus LambdaQueryWrapper的情况下可用下面的方式做参考 LambdaQueryWrapper<SysDicCode> la…

代码随想录算法训练营DAY35|C++贪心算法Part.4|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

文章目录 860.柠檬水找零伪代码实现CPP代码 406.根据身高重建队列思路伪代码实现代码优化 CPP代码 452. 用最少数量的箭引爆气球思路伪代码实现CPP代码 860.柠檬水找零 力扣题目链接 文章讲解&#xff1a;860.柠檬水找零 视频讲解&#xff1a;贪心算法&#xff0c;看上去复杂&a…

Windows系统部署Emby影音服务并实现无公网IP访问本地影视资源

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 本文主要介绍如何在Windows系统中&#xff0c;使用Cpolar内网穿透Emby&#xf…

C++入门(3)

文章目录 C入门auto同一行中定义多个变量auto不能推到的场景基于范围的for循环(C11)10. 指针空值nullptr(C11) C入门 auto auto&#xff1a;C11中&#xff0c;标准委员会赋予了auto全新的含义即&#xff1a;auto不再是一个存储类型指示符&#xff0c;而是作为一个新的类型指示…

linux信号机制分析

概念 信号递达&#xff1a;实际执行信号的处理动作就是信号递达 信号未决&#xff1a;信号从产生到递达之间的状态就是信号未决&#xff08;未决就是没有解决&#xff09; 收到某信号后&#xff0c;把未决信号集中的此信号置为1&#xff08;1表示未解决的信号&#xff09;&a…

2010年认证杯SPSSPRO杯数学建模B题(第一阶段)交通拥堵问题全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 交通拥堵问题 B题 Braess 悖论 原题再现&#xff1a; Dietrich Braess 在 1968 年的一篇文章中提出了道路交通体系当中的Braess 悖论。它的含义是&#xff1a;有时在一个交通网络上增加一条路段&#xff0c;或者提高某个路段的局部通行能力&a…

OceanBase V4.2特性解析:用 Show Trace 快速定位数据库性能瓶颈

在数据库日常运维中&#xff0c;当遇到慢SQL问题时&#xff0c;若无法迅速查明原因&#xff0c;将极大地影响用户的使用感受&#xff0c;甚至可能引发业务或服务的中断。相较于单机数据库&#xff0c;分布式数据库系统因其涉及多个节点和多组件的协同工作&#xff0c;集群规模可…

计算IP地址总个数的方法及其应用

IP地址是计算机网络中用于唯一标识和定位设备的数字地址&#xff0c;是Internet Protocol&#xff08;IP&#xff09;的核心组成部分。计算IP地址的总个数是网络规划和管理中的重要任务之一&#xff0c;本文将介绍计算IP地址总个数的方法及其应用。 IP地址查询&#xff1a;IP数…

华为公司战略规划和落地方法之五看三定工具解析【PPT图片】(内含超级福利)

导言 华为公司最厉害之处就是战略上的高举高打&#xff0c;“吹过的牛都实现了”。支撑华为公司战略从规划到落地的主要工具很多&#xff0c;其中“五看三定”是战略规划时最核心的方法之一。本资料将介绍五看三定的核心精髓。欢迎学习&#xff01; 本材料结合谢宁老师专著《华…

【漏洞复现】锐捷 EG易网关 phpinfo.view.php 信息泄露漏洞

0x01 产品简介 锐捷EG易网关是一款综合网关产品&#xff0c;集成了先进的软硬件体系构架&#xff0c;并配备了DPI深入分析引擎、行为分析/管理引擎。这款产品能在保证网络出口高效转发的基础上&#xff0c;提供专业的流控功能、出色的URL过滤以及本地化的日志存储/审计服务。 …

# 从浅入深 学习 SpringCloud 微服务架构(二)模拟微服务环境(2)通过 RestTemplate 调用远程服务

从浅入深 学习 SpringCloud 微服务架构&#xff08;二&#xff09;模拟微服务环境&#xff08;2&#xff09;通过 RestTemplate 调用远程服务 段子手168 1、打开 idea 创建父工程 创建 artifactId 名为 spring_cloud_demo 的 maven 工程。 --> idea --> File -->…

基于SpringBoot的“幼儿园管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“幼儿园管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 个人信息界面图 缴费信息管理界…

STM32 HAL库F103系列之DAC实验(一)

DAC输出实验 原理图 DAC数据格式 DAC输出电压 DORX - 数据输出寄存器 Vref 3.3V 实验简要 1&#xff0c;功能描述 通过DAC1通道1(PA4)输出预设电压&#xff0c; 然后由ADC1通道1 (PA1) 采集&#xff0c;最后显示ADC转换的数字量及换算后的电压值 2&#xff0c;关闭通道1…

2024平替电容笔买哪个品牌好?iPad电容笔全能榜单热门款TOP5分享!

2024年&#xff0c;随着科技的不断发展和消费者对生活品质的追求&#xff0c;电容笔作为一种创新的无纸化工具&#xff0c;逐渐走进人们的生活和工作中。然而&#xff0c;在电容笔市场的繁荣背后&#xff0c;也隐藏着品质良莠不齐的现象。众多品牌为了追求利润&#xff0c;推出…

SCSS全局配置 vue项目(二)

目录 1、先要查看node版本 2、安装对应的node-sass、sass-loader版本 2.1根据项目使用的node版本安装对应的node-sass版本 2.2根据node-sass版本选择兼容的sass-loader版本&#xff0c;不然项目无法正常运行 3、在 vue.config.js 中配置&#xff1a; 4、在组件中…

QT QZipReader改进,以支持大于2G的zip文件

QZipReader对ZIP文件读取非常方便好用。即使在最新版的QT 6.6.1里&#xff0c;仍然存在一些问题&#xff1a;对于大于2G的zip文件不支持。 虽然有标准zlib可调用&#xff0c;但包装成一个易用且功能成熟的zip解压功能库&#xff0c;还是有很大的工作量&#xff0c;也需要有一定…

【理性讨论】进口主食冻干高价是不是智商税?SC主食冻干全解+测评分享

说到高端主食冻干产品&#xff0c;SC无疑是其中的明星品牌。无论是在哪个平台搜索“主食冻干”等关键词&#xff0c;SC都能轻松进入视线。在双11、618等促销活动中&#xff0c;尽管SC的价格相对较高&#xff0c;但其销量却还不错&#xff0c;这足以说明众多宠物主人对SC冻干品质…

国产技术迎来突破,光量子芯片横空出世,中文编程也有好消息

国外光刻机不再牛&#xff0c;随着这项技术问世&#xff0c;我们摆脱芯片卡脖子困境成为可能&#xff01; 欧美国家在科技领域一直遥遥领先&#xff0c;那我们该如何实现后来居上呢&#xff1f;答案就在于我国在全球处于领先地位的量子科技&#xff0c;以及新近问世、令人瞩目…

如何在React中构建动态下拉组件 - 解释React复合组件模式

下拉菜单长期以来一直是网站和应用程序中的重要组成部分。它们是用户交互的默默英雄&#xff0c;通过简单的点击或轻触默默地促进着无数的操作和决策。 今天你可能已经遇到了其中之一&#xff0c;无论是在你最喜爱的在线商店上选择类别&#xff0c;还是在注册表单上选择你的出…

骨传导耳机哪个牌子好?5款年度精品骨传导耳机推荐

在骨传导耳机最开始出现的时候&#xff0c;相信很多人都只关心骨传导耳机的外观颜值和特殊的传声方式&#xff0c;但当你真正用过一段时间后&#xff0c;对骨传导耳机有了更加深入的了解后就会关注到骨传导耳机的使用体验、音质表现、蓝牙性能等具体功能&#xff0c;而随着骨传…