【算法】算法设计与分析 课程笔记 第一章 概述

news2024/12/23 7:23:06

第一章 算法概述

算法的性质

算法的四个性质:输入、输出、确定性和有穷性

算法的时间复杂度

1. 常见的时间复杂度

  1. 常数阶 O(1)

  2. 对数阶 O(log n)

  3. 线性阶 O(n)

  4. 线性对数阶 O(nlog n)

  5. 平方阶 O(n^2)

  6. 立方阶 O(n^3)

  7. k 次方阶 O(n^k)

  8. 指数阶 O(2^n)

注:上面的 log n 均代表以2为底的对数。

2. 时间复杂度排序

常见的算法时间复杂度由小到大依次为:

Ο(1)<Ο(log n)<Ο(n)<Ο(nlog n)<Ο(n^2)<Ο(n^3)< Ο(n^k) < Ο(2^n)

 随着问题规模n的不断增大,上面时间复杂度的值也不断增大,算法的执行效率越来越低。

PTA习题选讲

单选题

虽然没难度,但是考了各种复杂度的排序,警醒我需要把那一串背下来!

O(1)< O(log n)< O(n)< O(nlog n)< O(n^2)< O(n^3)

灵机一动,直接用2代入也可以!其实就是考函数的大小罢了!

 填空题

假设某算法在输入规模为n时的计算时间为T(n)=3∗2^n

在某台计算机上实现并完成该算法的时间为 t 秒

现有另一台计算机,其运行速度为第一台的64倍

那么在这台新机器上用同一算法在 t 秒内能解决问题的输入规模为(    )。

如果算法计算时间改进为T(n)=n^2,其余条件不变,

则新机器上用 t 秒可以解决问题的输入规模为(   )。

第一小问,因为两台机器的共同变量只有时间t,所以从t入手,

因为新机器的速度是旧机器的64倍,所以新机器用t秒时间解决的问题规模是旧机器的64倍

∴可得:T’(n) = 64*T(n) = 64*3*2^n = 3*2^(n+6)

问题规模和输入规模是不同的概念,所以新机器的输入规模应该是 n+6 

第二小问,同理,只需要把上式的T(n)换为n^2:

T’(n) = 64*T(n) = 64*n^2 = (8*n)^2

故在这个条件下输入规模则为 8*n

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

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

相关文章

Prompt 策略:代码库 AI 助手的语义化搜索设计

在过去的一周里&#xff0c;为了更好的构建 AI Agent 框架 Chocolate Factory&#xff08;以下简称 CF&#xff09;&#xff0c;我们加入了一个新的应用&#xff1a;代码库 AI 助手。 在设计时&#xff0c;为了更好的在框架底层提供这种能力&#xff0c;我们参阅了 Bloop 应用、…

科研小工具|慢性阻塞性肺疾病全球创议

简介 慢性阻塞性肺疾病全球创议&#xff08;the Global Initiative for Chornic Obstructive Lung Disease&#xff0c;GOLD&#xff09;是慢性阻塞性肺疾病&#xff08;COPD&#xff09;诊断、治疗与预防在全球范围内的标准。颁布GOLD的目的在于&#xff0c;增加医疗卫生工作…

pdd24版滑块

最近pdd改版了&#xff0c;在原来的基础之上加了一个content字段&#xff0c;然后pdd滑块分为两个大类。 一个是22类型的&#xff0c;在之前的文章里面有介绍&#xff0c;感兴趣也可以去看看。 详情的滑块跟普通的版本不同&#xff0c;但是有的算法也沿用了之前22版的东西&a…

【Seata】05 - Seata Saga 模式简单整理、Docker 部署 Nacos 单机(基于 Jpom)相关配置

文章目录 前言参考目录Saga 模式知识点简单整理1、适用场景、优缺点2、Saga 模式的使用3、可能出现的问题以及解决方法 Docker 部署 Nacos 单机&#xff08;基于 Jpom&#xff09;步骤 1&#xff1a;拉取镜像步骤 2&#xff1a;构建容器步骤 3&#xff1a;Nacos 设置 Seata 配置…

安装Python第三方库

视频版教程 Python3零基础7天入门实战视频教程 在Python的标准安装中&#xff0c;包含了一组自带的模块&#xff0c;这些模块被成为“标准库”。比如常用的math,random,datetime,os,json等等。 此外&#xff0c;还有很多的第三方模块&#xff0c;或者叫做库也行&#xff0c;叫…

TienChin 渠道管理-配置校验失败信息

新建 ValidationMessages.properties&#xff1a; channel.name.notnull渠道名称不能为空 channel.type.notnull渠道类型不能为空 channel.status.notnull渠道状态不能为空 channel.type.invalid渠道类型无效 channel.status.invalid渠道状态无效

linux上安装redis

这篇文章简单地介绍一下怎么在linux虚拟机上完成redis的安装。 首先&#xff0c;访问Redis官网&#xff0c;点击首页的【Get Started】&#xff0c;然后点击Install Redis on Linux 然后按照页面内容提示&#xff0c;在Ubuntu上安装redis 只需要在终端依次输入以下命令&#xf…

面试官:Vue实例挂载的过程中发生了什么?

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、思考 一、分析 三、结论 一、思考 我们都听过知其然知其所以然这句话 那么不知道大家是否思考过new Vue()这…

权限提升WIN篇(腾讯云,CS,MSF)

溢出漏洞 信息收集 操作系统版本ver&#xff0c;systeminfo漏洞补丁信息systeminfo操作系统位数systeminfo杀软防护tasklist /svc网络netstat -ano,ipconfig当前权限whoami 筛选EXP 根据前面的信息收集中的系统版本&#xff0c;位数和补丁情况筛选出合适的EXP 提权 根据EX…

JVM——4.垃圾回收

这篇文章我没来讲一下JVM中的垃圾回收。这是比较重要&#xff0c;内容也比较多的一篇文章。 目录 1.垃圾回收概述 2.如何判断对象可以回收 2.1引用计数法 2.2可达性分析算法 2.2.1GCRoot的选取 2.3再谈引用 2.3.1强引用 2.3.2软引用 2.3.3弱引用 2.3.4虚引用 2.3.5…

2023关于赴日IT培训你需要了解的

有人还是好奇日本IT行业真的那么缺人吗&#xff1f;我告诉你&#xff1a;缺&#xff01;和中美完全不同的是&#xff0c;日本的IT行业面临着非常严重的程序员缺口。根据日本经济产业省进行的“关于IT人才供需的调查”&#xff0c;预计到2030年&#xff0c;日本IT行业将会有45万…

进程的就绪、执行、阻塞和挂起

假设我们有一个进程, 它需要的资源有CPU, 资源A(在进程创建时为其分配), 资源B(进程运行时才发现需要资源B), 现在用这个进程来分析一下进程的几种状态. 先看图: 图1: 进程的几种状态 1. 创建 --> 就绪(资源A): 操作系统为进程分配资源A, 进程进入就绪态, 等待CPU. 进程当…

ICS TRIPLEX T8310 自动化控制模块

ICS TRIPLEX T8310 是一种自动化控制模块&#xff0c;通常用于工业控制和自动化系统中&#xff0c;以实现对各种过程和设备的自动控制。以下是可能包括在 ICS TRIPLEX T8310 自动化控制模块中的一些常见产品功能&#xff1a; PLC&#xff08;可编程逻辑控制器&#xff09;功能&…

树结构构建,字典树快速生成。

表结构 查出list后&#xff0c;用工具类转换。工具类代码如下&#xff1a; 下面展示一些 内联代码片。 public static List<JSONObject> toTreeList(List tList, String oidkey, Stripspidkey) List<JSONObject> jsonObjectList JSONArray. parseArray (JSON.…

公司电脑监控软件哪个好?(常用公司电脑监控软件有哪些?)

随着科技的发展&#xff0c;公司对员工电脑的监控已经成为了企业管理的重要手段。然而&#xff0c;如何选择合适的公司电脑监控软件&#xff0c;以及如何避免员工发现&#xff0c;成为了企业管理者需要面对的问题。 一、公司电脑监控软件哪个好&#xff1f; 针对公司电脑监控软…

Hive工作原理

Hive 工作原理详解-阿里云开发者社区 Hive的服务端组件 1. Driver组件&#xff1a;该组件包括&#xff1a;Compiler、Optimizer、Executor,它可以将Hive的编译、解析、优化转化为MapReduce任务提交给Hadoop1中的JobTracker或者是Hadoop2中的SourceManager来进行实际的执行相应…

《数字图像处理-OpenCV/Python》连载(7)视频文件的读取与保存

《数字图像处理-OpenCV/Python》连载&#xff08;7&#xff09;视频文件的读取与保存 本书京东优惠购书链接&#xff1a;https://item.jd.com/14098452.html 本书CSDN独家连载专栏&#xff1a;https://blog.csdn.net/youcans/category_12418787.html 第1章 图像的基本操作 为…

记录一下 ThinkPHP 使用JWT进行身份验证

ThinkPHP使用JWT身份验证 1.composer安装jwt&#xff0c;安装命令&#xff1a;composer require firebase/php-jwt 安装成功后会在vendor目录下生成firebase目录文件 第二步&#xff1a;生成token 先引入jwt use Firebase\JWT\JWT; public function getToken($user){//使…

安达发|APS软件多工厂架构引领生产管理新革命

APS多工厂架构是一种生产管理系统&#xff0c;它通过将多个工厂的生产过程进行整合和优化&#xff0c;实现了生产效率的提高和成本的降低。在APS多工厂架构中&#xff0c;每个工厂都有自己的生产线和生产计划&#xff0c;但是它们之间可以进行协调和协作&#xff0c;以确保整个…

深度学习归一化原理及代码实现(BatchNorm2d,LayerNorm,InstanceNorm,GroupNorm)

文章目录 概述形式原理理解源代码实现1.BatchNorm2d2.LayerNorm3.InstanceNorm4.GroupNorm 概述 本文记录总结pytorch中四种归一化方式的原理以及实现方式。方便后续理解和使用。 本文原理理解参考自 https://zhuanlan.zhihu.com/p/395855181 形式 四种归一化的公式都是相同的…