北航计算机软件技术基础课程作业笔记【1】

为白成刚老师的课程,简单做一个记录,内容偏基础,自己仅保留认为有用的部分

L1:算法概论

课程简单介绍了复杂度、算法的概念

1.作业

计算下列各片断程序中x=x+1的执行次数

(1)

for (i=1; i<n; i++)for (j=1; i<n; j++)for (k=1; i<n; k++)x=x+1;

内层的x=x+1位于三重循环中,但由于内两层判断条件均为最外层变量,且不对其进行修改,故

在n=0或1时,该代码执行0次(一般不会这样);n>1时,该段代码片是无限循环

O(∞)

(2)

i=1;
while (i<n)   
{x=x+1;i=i+1;
}

一层循环,内层x=x+1需要执行n-1次才能退出,故

O(n)

(3)

for (i=1; i<n; i++)j=1;
for (k=j+1; k<n; k++)x=x+1;

第一个for循环中,j被赋值1,在第二个循环中国,k的初值为2,那么x=x+1执行n-2次

O(n)

(4)

for (i=1; i<n; i++)
{ j=i; //执行n次while (j>=2){j=j/5; //执行log5(i)次x=x+1;}
}

外层的for循环执行n次,但内层的执行次数取决于i的值,于是为如下式子,并化简

n_{run\ time}=\sum^{n}_{i=1}{\log_{5}n}=\log_5{n!}

分析时间复杂度,即为

O(log5n!)

或者放大上界至线性对数

O(n*log5n)

(5)

k=100000;
while (k!=5)
{k=k/10;x=x+1;
}

该循环的条件无法达到,故该循环也无法终止,语句的运行次数为无穷大

O(∞)

(作业中有用的知识点记录)

2.复杂度分析

(1)复杂度表示

时间复杂度表示方式:O(g(n))

定义以下式子:

f(n) = O(g(n))

含义为:

\exists c\in \mathbb{R} >0, such \ that \\ \lim_{n\rightarrow \infty}{f(n) \leq c*g(n)}

用于描述最坏复杂度

一般常数<对数<线性<线性对数<幂次<指数

(2)分析方法——渐进分析法

选择算法内重复执行次数最多基本语句,作为算法执行时间量度。一般情况下是最深层循环内的基本语句。

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

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

相关文章

牛客小白月赛89补题1(ABCD)(偏难)

评价&#xff1a; 高情商&#xff1a;收获很大 &#xff0c;让自己进一步认清自己。 低情商&#xff1a;题目难&#xff0c;自己太菜了。 今天还有一些其他事&#xff0c;剩下的题明天再补。 我们从a题开始吧&#xff1a; A.签到 我们只要看看其中的max与min是否不符合即可…

Android14之selinux报错:ERROR: end of file in comment(一百九十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

项目成功秘诀:高效管理策略确保按时交付v2

一、项目成功的重要性 在当今竞争激烈的商业环境中&#xff0c;项目的成功对于企业的生存和发展具有至关重要的意义。项目的成功不仅意味着企业能够达成既定的业务目标&#xff0c;还能提升企业的市场地位、增强品牌影响力&#xff0c;并为企业的可持续发展奠定坚实基础。我们…

eMule 中的“低 ID”(Low id)

在 eMule 中&#xff0c;“低 ID”是指 eDonkey 网络内的客户端 ID 被归类为“低”的情况。 这种分类表明客户端的连接有一定的限制或限制。 在 eMule 中&#xff0c;ID 较低可能会影响用户连接到其他客户端的能力&#xff0c;并可能导致下载速度变慢或出现其他网络问题。 eMu…

中型企业网络路由器配置(ensp)实验

vlan、vlan间路由、ospf协议等来实现三层交换机和单臂路由之间的通信 拓扑图&#xff1a; 1. 配置三层交换机vlan和vlan间路由 SW1 #进入视图 sys sysn sw1 undo info-center enable#配置vlan vlan batch 10 20 30 40 50 60#配置access口 int g0/0/1 port link-type access …

vuetify3 弹窗中使用 element-plus 时间控件异常解决

1、解决方案: v-dialog 标签加上3个属性&#xff1a; 1、persistent &#xff1a;禁用点击窗口外的关闭事件 2、no-click-animation&#xff1a;禁用点击动画 3、retain-focus&#xff1a;取消焦点事件 2、填报弹窗基本代码&#xff1a; 就看 v-dialog 标签属性就行&#xf…

【Qt5】QVariant

2024年3月22日&#xff0c;周五下午 什么是QVariant QVariant 是 Qt 框架中用于处理各种数据类型的通用类。它可以存储几乎任何类型的数据&#xff0c;并且能够在不同的 Qt 类之间进行类型转换。QVariant 在 Qt 中被广泛用于处理不同的数据类型&#xff0c;包括基本数据类型&a…

Python Using cached demjson-2.2.4.tar.gz (131 kB)...报错

安装demjson报错&#xff0c;提示Using cached demjson-2.2.4.tar.gz (131 kB)...... 解决办法 使用pip list查看&#xff0c;发现是setuptools版本过高导致&#xff0c;这里我使用的是45.2版本 pip uninstall setuptools pip install setuptools45.2 pip install demjson …

ChatGPT提示词大全:解锁AI对话

2024升级ChatGPTPLUS最快的方法 一、什么是ChatGPT提示词&#xff1f; ChatGPT提示词是用户在与ChatGPT进行对话时&#xff0c;提供的一些关键词或短语&#xff0c;用于引导ChatGPT的回答方向和内容。通过合理的提示词设置&#xff0c;用户可以更加精确地获取所需信息&#x…

HBase的Bulk Load流程

目录 1. 数据准备 2. 文件移动 3. 加载数据 4. Region处理 5. 元数据更新 6. 完成加载 7. 清理 8. 异常处理 LoadIncrementalHFiles&#xff08;也称为Bulk Load&#xff09;是HBase中一种将大量数据高效导入到HBase表的机制。以下是LoadIncrementalHFiles的主要流程步…

视觉信息处理和FPGA实现第6次作业-Matlab实现灰度图像的亮度调节

一、代码 close all;clear all;clc; pic imread("cameraman.tif"); [M,N] size(pic); disp("Contrast Ajust Demo"); value input("Please input number of value, range: 0~2\n"); while value>2 || value<0disp("The number is in…

Springboot集成jersey打包jar找不到class处理

环境 java17 springboot 3.x 如题&#xff0c;简单来说&#xff0c;jersey官方希望用户通过 register 的方式&#xff0c;将所有的资源类注册到jersey中&#xff0c;但是&#xff0c;一般开发中&#xff0c;可能定义了N个Resource类&#xff0c;一个一个的加入&#xff0c;太…

python--for循环

for循环&#xff1a; python中的for循环是用来迭代容器中的每一个元素的&#xff0c;而不是c,java中理解那个循环&#xff1b; for 零时变量 in 容器&#xff1a; print&#xff08;零时变量&#xff09; #每一个迭代出的元素 range 全局函数&#xff1a; …

嵌入式面试积累

C语言 1、volatile关键字的作用 volatile意为”易变的“&#xff0c;是一种类型修饰符。提示编译器这个编译器定义的变量可以随时改变&#xff0c;编译器将不会轻易优化该变量&#xff0c;它主要用于多线程编程中&#xff0c;用来保证共享变量的内存可见性。 volatile修饰的…

P6技巧:修改P6 Professional标题/标签名称/字体

前言 P6 Professional作为P6的客户端工具其本身具有一定的改造属性&#xff0c;通过修改其安装程序文件&#xff0c;可以实现对部分功能菜单/标签文字名称的修改/重定义 如以下标识的信息&#xff0c;都可对齐改名 方法 以下介绍的方法只可对本机有效&#xff0c;这里已修改…

开学考核复现

不要尝试爆破哟!(misc) 下载图片&#xff0c;解析图片 拿到密码&#xff0c;解压压缩包&#xff0c;生成图片 扫描二维码 留个后门(misc) D盾扫描 打开文件寻找 师姐的旅游照片(misc) 随波逐流&#xff0c;然后base64解码 修改后缀为zip&#xff0c;解压 修改高度 Fuck! (C…

服务器硬防和软防是什么?

关于服务器防御相关的知识很多新手都不是很了解&#xff0c;服务器防御分为服务器硬防和软防&#xff0c;接下来小编就带领大家一起来了解一下什么是服务器硬防和软防。 一、服务器硬防 服务器硬防主要指的是硬件防火墙&#xff0c;能够在硬件设备中嵌入防火墙的防御程序&…

Matlab之已知2点绘制长度可定义的射线

目的&#xff1a;在笛卡尔坐标系中&#xff0c;已知两个点的位置&#xff0c;绘制过这两点的射线。同时射线的长度可以自定义。 一、函数的参数说明 输入参数&#xff1a; PointA&#xff1a;射线的起点&#xff1b; PointB&#xff1a;射线过的零一点&#xff1b; Length&…

Redis入门到实战-第四弹Strings 篇

Redis实战热身Strings 篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息代理…