数据结构之 时间复杂度与空间复杂度

news2024/11/26 2:38:33

目录

    1:什么是时间复杂度和空间复杂度

    2:时间复杂度与空间复杂度求法

    3:几个典型时间复杂度与空间复杂度的分析    

            


1:什么是时间复杂度与空间复杂度

        首先对于我们所写的程序来说,为了评估一个算法的好与坏我们需要通过该程序的时间与空间的复杂度来比较,这里的比较是在程序正确的情况下来比较的,时间复杂度:简而言之就是这个算法所运行时需要多少时间,我们采用的是渐进时间复杂度,时间复杂度越低,则在相对情况下该程序好。记作:T(n) = O(f(n)).

        空间复杂度:            空间复杂度 =算法本身所需要的空间+算法的辅助空间

算法本身所需要的空间为:变量,指令等所需要的空间,而复杂空间则是我们在实现算法的过程中所创建的空间。

        算法的时间复杂度与空间复杂度有时候是矛盾的,即有时间我们需要牺牲空间来换取时间,有时候需要牺牲时间来换取空间。

        总而言之,算法的好坏需要通过时间复杂度与空间复杂度来评判。

2:时间复杂度与空间复杂度的求法

        我们执行语句的时间 =执行次数

                时间复杂度: 先找程序中执行次数最多的语句  --->算出该语句执行了多少次 --->取出该语句执行次数的最高数量级且忽略前面的系数---->写出该程序的时间复杂度T(n) =O(f(n)).   

        f(n) :即该语句的最高数量级,T(n)为该程序的时间复杂度.

        

 一般我们尽量选左边的作为程序的时间复杂度

        空间复杂度 

                看我们所使用的变量与循环有没有关系,如果没有关系我们则称它的空间复杂度为S(n) =O(1),即原地工作。

3:典型列题的时间复杂度的分析

       

int i =1;
while(i<=n)
    i=i*2;

//这里我们分析,当循环执行1次    i=2^1  ;
                        2次    i=2^2
                        3次    i =2^3;


                        x次    i =2^x
          所以我们就有2^x<=n
                x<lgn

所以时间复杂度为T(n) = O(lgn)
int x =1;
int i =1;
int j =1;
for(i=1;i<=n;i++)
    for(j=1;j<=i;j++)
        {x++;}
//这里我们先找到执行最多的语句为x++;
  其次它的时间复杂度的算法为:可以用无穷级数的方法
先算j从1到i,则有i次,再算i从1到n则有 n(n+1)/2,又由时间复杂度的求法可在,次程序的时间复杂度为
    T(n)= O(n^2)

                                  

                

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

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

相关文章

用*打印一个空心三角形

通过找规律发现&#xff0c;有*的位置坐标是&#xff08;0&#xff0c;3&#xff09;&#xff08;1&#xff0c;2&#xff09;&#xff08;1&#xff0c;4&#xff09;&#xff08;2&#xff0c;1&#xff09;&#xff08;2&#xff0c;5&#xff09;&#xff0c;三角形左边坐标…

Python爬虫使用代理IP的实现

使用爬虫时&#xff0c;如果目标网站对访问的速度或次数要求较高&#xff0c;那么你的 IP 就很容易被封掉&#xff0c;也就意味着在一段时间内无法再进行下一步的工作。这时候代理 IP 能够给我们带来很大的便利&#xff0c;不管网站怎么封&#xff0c;只要能找到一个新的代理 I…

软考:中级软件设计师:计算机存储结构,cache,局部性原理,RAM和ROM,磁盘结构和计算

软考&#xff1a;中级软件设计师:计算机存储结构 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的…

2023年铁矿石行业研究报告

第一章 行业概况 铁矿石行业是指从地壳中开采铁矿石&#xff0c;经过破碎、筛选、洗选等步骤&#xff0c;使其达到工业上可用的标准的一整套产业。这个行业涵盖了从开采到运输&#xff0c;再到冶炼和销售的全过程。它是全球制造业&#xff0c;尤其是钢铁工业的基础。 铁矿石的…

org.apache.commons(commons-csv)下载CSV增加BOM头

网络说明 代码说明 依赖 <!--https://mvnrepository.com/artifact/org.apache.commons/commons-csv--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.8</version><…

C++学习笔记-第9单元 异常处理

第9单元 异常处理 文章目录 第9单元 异常处理单元导读9.1 异常处理概览9.1.1 异常处理概览9.1.2 异常处理机制的优点 9.2 异常匹配与内建异常类9.2.1 异常匹配与异常类9.2.2 内建异常类 9.3 自定义异常类与多重捕获9.3.1 自定义异常类9.3.2 捕获多种无关异常9.3.3 捕获派生异常…

C#Winform 中tabcontrol 美化实例

本篇讲解tabcontrol 美化实例,我们项目开发中为了保持项目界面的风格的一致性,需要美化tabcontrol控件,系统自带的控件样式不能更改,无法满足需求。 先看效果 实现过程 创建winform项目,添加组件类控件 修改名称,点击添加 cs代码 using System.Drawing; using Sys…

TX Text Control .NET for WPF 31.SP3 Crack

.NET WPF 应用程序的文档处理 将文档编辑、创建和 PDF 生成添加到您的 WPF 应用程序中。 视窗用户界面 功能齐全的文档编辑器 TX Text Control 是一款免版税、完全可编程的丰富编辑控件&#xff0c;它在专为 Visual Studio 设计的可重用组件中为开发人员提供了广泛的文字处理功…

Spring Native 实现 0.059s 启动一个SpringBoot项目!

前言 最近自己用Spring Cloud Alibaba做了一个微服务架构的项目&#xff0c;部署的时候遇到了难题&#xff1a;内存不够。目前该项目有7个微服务&#xff0c;因为我只有一台阿里云的服务器(2C 4G)&#xff0c;所以我只能把所有的微服务部署在一台服务器上&#xff0c;部署方式…

uni-App踩坑记录

​ 1、uni自己封装的axios在真机中失效&#xff0c;发不出请求 uniapp中使用axios 需要配置适配器 (添加适配器有点费劲&#xff0c;直接封装uni自带请求也可以) axios-adapter-uniapp传送门 axios.defaults.adapter function(config) { //自己定义个适配器&#xff0c;用来…

JS获取表单保存的时候发送到server端的xml

var dataXml Xrm.Page.data.entity.getDataXml(); alert(dataXml); JS获取表单保存的时候发送到server端的xml。

一文读懂Unreal Engine游戏引擎如何提高数字孪生场景渲染能力

以下案例来自于《数字孪生世界白皮书&#xff08;2023版&#xff09;》 领取方式&#xff1a;公众号「EasyV数字孪生」后台回复「白皮书」即可领取&#xff01; Unreal Engine&#xff08;下文简称为UE&#xff09;&#xff0c;是一款由Epic Games开发的游戏引擎&#xff0c;…

100天精通Python(可视化篇)——第94天:Pyecharts绘制多种炫酷散点图(参数说明+代码实战)

文章目录 专栏导读一、Scatter&#xff08;散点图&#xff09;1. add函数2. 数据项 二、基础气泡图三、多维度散点图四、添加分割线五、动态涟漪散点图六、不同形状散点图七、3D散点图 专栏导读 &#x1f525;&#x1f525;本文已收录于《100天精通Python从入门到就业》&#…

CentOS7 图形化方式安装 Oracle19C

CentOS7 图形化方式安装 Oracle19C 操作系统&#xff1a;CentOS7 Oracle&#xff1a; 19C 远程连接工具&#xff1a;Xmanager Power Suite 7 安装常用工具和依赖 yum -y install vim tar net-tools wget perl python3 readline* deltarpm python-deltarpm \zip unzip bc compa…

天翎群晖NAS为全文检索插翅起飞

编者按&#xff1a;企业的文档资料随着企业的业务发展会越来越多&#xff0c;想要某个资料的时候&#xff0c;最怕找不到想要的资料&#xff0c;这时KMS的全文检索功能就非常重要了&#xff0c;只需只言片语的零星关键字&#xff0c;查找文档没压力。 关键词&#xff1a;全文检…

Liunx服务器磁盘挂载

一&#xff1a;查看磁盘信息 [rootxxx ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 253:0 0 100G 0 disk ├─vda1 …

【动态规划算法】第三题:746.使用最小花费爬楼梯

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389;作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作…

能代替纸质笔记本的记录软件哪个好?

在很长一段时间里&#xff0c;纸质笔记本一直是我们记录信息的常用工具。然而随着记录需求的不断增加&#xff0c;纸质笔记本也暴露了一些不足之处。首先&#xff0c;它们的存储容量有限&#xff0c;很难管理大量的笔记。其次&#xff0c;如果纸质笔记本遗失或损坏&#xff0c;…

上门家政小程序|上门保洁APP|家政服务预约上门软件开发

上门家政小程序对于上门保洁服务非常方便。下面是一些简单介绍&#xff1a;   预约便捷&#xff1a;通过上门家政小程序&#xff0c;用户可以随时随地进行保洁服务的预约。无论是在家中、办公室还是旅途中&#xff0c;用户只需打开小程序&#xff0c;选择合适的日期和时间&am…

zabbix基础1——发展起源、基础安装、配置文件参数释义

文章目录 一、基本了解二、配置文件详解2.1 服务端配置文件2.2 客户端配置文件 三、源码安装3.1 安装服务端3.2 配置web前端文件3.3 访问网页 一、基本了解 前提背景&#xff1a; Zabbix是一个企业级分布式开源监控解决方案&#xff0c;由 Alexei Vladishev 创建&#xff0c;目…