【数据结构(邓俊辉)学习笔记】绪论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://www.mzph.cn/web/2096.shtml

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

相关文章

什么是健康管理——健康评估实训室

健康管理—健康评估实训室是一种以健康评估为核心&#xff0c;集教学、实验、实训为一体的多功能教学场所&#xff0c;其主要目的在于通过模拟真实的工作场景和运用先进的健康评估工具&#xff0c;帮助学生掌握健康评估的理论知识和实际操作技能&#xff0c;以便在未来的职业生…

嘴尚绝卤味:传统与现代的完美结合

卤味&#xff0c;作为中国传统美食中的一大类&#xff0c;凭借其独特的口感和丰富的风味&#xff0c;一直深受食客们的喜爱。而在众多卤味品牌中&#xff0c;嘴尚绝卤味凭借其卓越的品质和创新的口味&#xff0c;成为了市场上的佼佼者。今天&#xff0c;就让我们一起来品味嘴尚…

一句话或一张图讲清楚系列之——IDELAYE2的用法

主要参考&#xff1a; Xilinx IDELAYE2应用笔记及仿真实操-CSDN博客 xilinx原语介绍及仿真——IDELAYE2 & IDELAYCTRL_idelayctrl原语使用说明-CSDN博客 1 原理 IDELAYE2一般用于对输入lvds高速信号进行延时微调&#xff0c;可以把时钟和数据都单独微调&#xff1b;如果数…

11-4.Vue2.x基本列表—列表更新—push

文章目录 列表更新数组更新检测 列表更新 数组更新检测 变更方法 Vue 将被侦听的数组的变更方法进行了包裹&#xff0c;所以它们也将会触发视图更新。这些被包裹过的方法包括&#xff1a; push() pop() shift() unshift() splice() sort() reverse()<!DOCTYPE html> &…

pdf加水印怎么加?自己原创的PDF资料分享到网络上需要采取一些版权保护的措施,添加水印就是个不错的选择

一&#xff0c;水印的基本概念 水印通常是一种用于标识文件来源、版权信息或防止非法复制的标记。它可以是文字、图形或图像等形式&#xff0c;以半透明或半淡化的方式嵌入到文件中&#xff0c;既不影响文件的正常阅读&#xff0c;又能起到标识和保护的作用。 二&#xff0c;…

熊猫电竞赏金赛系统源码 APP+H5双端源码附搭建教程下载

熊猫电竞赏金系统简介 熊猫电竞赏金电竞系统 赏金赛源码&#xff0c;用户通过平台打比赛&#xff0c;赢了获得奖金奖励&#xff0c; 金币赛、赏金赛、vip赛等种赛事 可开王者荣耀、和平精英比赛 支持1v1、单排、双排组、战队排等多种比赛模式 支持QQ区、微信区 游戏玩的好…

【前后端】django前后端交互

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、django是什么二、django前后端交互指引三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人会主动学习使用一些开发语言&#x…

【前端】node.js常用命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、node是什么二、node.js常用命令三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人能够上手操作执行一些简单命令&#xff0c;…

stash拯救犹豫不决的commit

当使用git时&#xff0c;发现同事提交了代码&#xff0c;但是我的代码的还没有commit&#xff0c;我想先拉取他们的代码一起测试&#xff0c;测试成功后再commit&#xff0c;最好的做法是什么? 1. 保存当前更改 将当前的未提交更改暂存到Git堆栈&#xff1a;git stash save …

《庆余年》开发衍生短剧,阅文迈向短剧市场的一大步

《庆余年》竟然也要拍短剧了。 据悉&#xff0c;《庆余年》衍生短剧《庆余年之少年风流》预计将于5月1日开机&#xff0c;等了五年都没等到《庆余年2》&#xff0c;没想到先等到了衍生短剧。 由组讯消息可知&#xff0c;《庆余年之少年风流》讲述的是少年庆帝李云潜“扮猪吃老…

Redis入门到通关之数据结构解析-IntSet

文章目录 概述IntSet升级简易源码总结 欢迎来到 请回答1024 的博客 &#x1f34e;&#x1f34e;&#x1f34e;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后端开发者。 …

负载均衡的原理及其算法详解

负载均衡的原理及其算法详解 一、负载均衡的原理 负载均衡是一种在计算机网络中分配资源和请求的技术&#xff0c;旨在将网络负载均匀地分布到多个服务器上&#xff0c;以提高系统的性能、可靠性和可扩展性。其基本原理可以归纳为以下几点&#xff1a; 会话保持&#xff1a;…

基于微信小程序的图书馆座位预约系统的设计与实现

基于微信小程序的图书馆座位预约系统的设计与实现 Design and Implementation of Seat Reservation System for Library Based on WeChat Mini Program 完整下载链接:基于微信小程序的图书馆座位预约系统的设计与实现 文章目录 基于微信小程序的图书馆座位预约系统的设计与实…

【SAP HANA 15】SQL锁表 (查询,解锁)

锁表查看 --锁表检查语句 SELECT C.CONNECTION_ID,PS.STATEMENT_STRINGFROM M_CONNECTIONS C JOIN M_PREPARED_STATEMENTS PSON C.CONNECTION_ID PS.CONNECTION_ID AND C.CURRENT_STATEMENT_ID PS.STATEMENT_IDWHERE C.CONNECTION_STATUS RUNNINGAND C.CONNECTION_TYPE Re…

HCIP-Datacom-ARST必选题库_36_加密算法【1道题】

一、单选 1.下加密算法中,哪一个需要公钥和私钥两种不同的秘钥配合使用? AES RSA DES 3DES

pyCharm导入pyspark中的sparkconf和sparkcontext错误

背景&#xff1a;学习黑马程序员python课程的pyspark实战部分时按照下图导入pysark包时发现sparkconf和sparkcontext无法导入和运行。 首先想到是不是在CMD窗口下载的pySpark路径及安装是否正确&#xff1f; 通过下图发现第三方库都安装正确&#xff0c;然后就考虑库的路径&a…

什么是健康管理——运动干预实训室

健康管理——运动干预实训室是一种专注于运动与健康科学相结合的教育实践平台&#xff0c;旨在通过模拟真实的健康管理环境&#xff0c;教授学生如何运用运动干预手段进行个体或群体的健康管理&#xff0c;培养具备运动处方设计、运动指导、健康评估和干预实施能力的专业人才。…

反射理解【精细】

目录 什么是反射 从编程的角度来说 : 从生活的角度来说 : Class类 记住一句话&#xff1a; 获取Class对象的三种方法 : 通过Class.forName&#xff08;"包名.类名"&#xff09;获取class对象 (方法一) 通过类名.class获取Class对象(方法二) 通过 对象.class …

什么是健康管理营养膳食实训室

健康管理营养膳食实训室是专为培养健康管理和营养学相关专业人才而设立的实践教学场所&#xff0c;它集成了现代化的教学设施与技术支持&#xff0c;致力于理论与实践相结合&#xff0c;着重于营养膳食的规划、设计、制作、评估以及健康管理全过程的模拟训练。此类实训室的核心…

Kafka重点笔记

Kafka重点笔记 默认端口号 9092 一、kafka将数据保存在哪里&#xff1f; kafka是将数据保存在磁盘。 二、离线计算、实时计算 离线计算&#xff1a;T1模式。处理的数据是静态数据&#xff0c;有界限&#xff0c;知道什么时候开始也知道什么时候结束。 实时计算&#xff1…