数据结构解决的问题:“快” + “省”,即为时间,空间复杂度分析

1:为什么需要复杂度分析?

因为通过统计手段分析的结果受到两个因素的影响,一:测试结果非常依赖测试环境,二:测试结果受数据规模的影响很大

2:大O复杂度表示法

所有代码的执行时间T(n)与每行代码的执行次数n成正比。

T(n) = O(f(n))

3:时间复杂度分析: 渐进时间复杂度

1:只关注循环执行次数最多的一段代码

2:加法法则:总复杂度等于量级最大的那段代码的复杂度

3:乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

4:几种常见时间复杂度量级:

多项式量级:

u 常数阶O(1)

u 对数阶O(logn)

u 线性阶O(n)

u 线性对数阶O(nlogn)

u 平方阶O(n*n),立方阶O(n*n*n)… k方阶O(n*……*n)

非多项式量级:

u 指数阶O(2*……*2)

u 阶乘阶O(n!)

5:空间复杂度分析: 渐进空间复杂度

常见的空间复杂度:O(1) O(n) O(n*n)

Chapter3 复杂度分析(上):如何分析,统计算法的执行效率和资源消耗的更多相关文章

  1. 《数据结构与算法之美》 <01>复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

    我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间.所以,执行效率是算法一个非常重要的考量指标. 那如何来衡量你编写的算法代码的执行效率呢?这里 ...

  2. 【数据结构&算法】02-复杂度分析之执行效率和资源消耗

    目录 前言 复杂度 分析方法 大 O 复杂度表示法 例子-评估累加和的各种算法执行效率 算法 1(for 循环): 算法 2(嵌套 for 循环): 大 O 表示 时间复杂度分析 关注执行最多的一段代 ...

  3. 统计sql语句执行效率

    --统计sql语句执行效率SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N ...

  4. MySQL慢日志线上问题分析及功能优化

    本文来源于数据库内核专栏. MySQL慢日志(slow log)是MySQL DBA及其他开发.运维人员需经常关注的一类信息.使用慢日志可找出执行时间较长或未走索引等SQL语句,为进行系统调优提供依据 ...

  5. DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验

    DevEco Device Tool迎来了2.1 Beta1,新版本有很多亮点.在上次"DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验 ...

  6. R与数据分析旧笔记(六)多元线性分析 上

    > x=iris[which(iris$Species=="setosa"),1:4] > plot(x) 首先是简单的肉眼观察数据之间相关性 多元回归相较于一元回归的 ...

  7. 线上bug分析

    昨天下午大神把组内几十号人召集在一起开Online bug分析大会,主要是针对近期线上事故从事故原因和解决方案两个维度来分析. 对金融软件来说,每一次的线上事故都有可能给公司带来重大的损失,少扣了用户 ...

  8. TOMCAT8源码分析——SESSION管理分析(上)

    前言 对于广大java开发者而已,对于J2EE规范中的Session应该并不陌生,我们可以使用Session管理用户的会话信息,最常见的就是拿Session用来存放用户登录.身份.权限及状态等信息.对 ...

  9. TOMCA源码分析——处理请求分析(上)

    在<TOMCAT源码分析——请求原理分析(上)>一文中已经介绍了关于Tomcat7.0处理请求前作的初始化和准备工作,请读者在阅读本文前确保掌握<TOMCAT源码分析——请求原理分析 ...

随机推荐

  1. angularjs 下滑线滑动

    css: .detail_row { width: 410px; height: 34px; clear: both; border-bottom: 1px solid #eaeeef; font-s ...

  2. chrome扩展应用API

    background scripts可以访问所有的 WebExtension JavaScript APIs ,但是不能直接访问页面 content scripts 可以通过标准的DOM api 读取 ...

  3. JVM配置参数详解

    记录一下jvm中的一些配置参数,这些肯定不全的,希望你们能留个言,补全一下,谢谢啦! -XX: MaxDirectMemorySize--->设置直接内存,不设置与Java堆内存最大值一致 -X ...

  4. [Linux]Redhat7配置CentOS7 YUM源

    一.简介 安装Redhat7并配置了网卡之后,虽然可以直接ping www.baidu.com,但是执行yum install的命令时提示如下信息: [root@ansible ~]# yum ins ...

  5. 2.3 利用FTP服务器下载和上传文件

    二.利用FTP服务器的下载文件 from ftplib import FTP from os.path import exists def getfile(file,site,dir,user=(), ...

  6. angualr Material Icons

    首先需要项目引入 angualr meterial icons的资源库 图标资源链接 https://klarsys.github.io/angular-material-icons/ <md- ...

  7. Windows 应用商店无法下载---启动更新

    今天想在应用商店下载东西,但是以直没成功,查看原因结果是因为我的Windows自动更新关了. 百度,如何打开自动更新,要打开本地组策略编辑器,但是我是Windows家庭版,,,没有这个东西,, 最后, ...

  8. 导入maven项目导入依赖不会报错,但使用的jar会标红

    方法1: 1.通过编译找到报错的jar; 2.在 repository找到此jar,一般未下载完大小为1k我的是这样(); 3.删除未下载完全的jar,在项目上执行maven reimport会重新下 ...

  9. <a>链接添加样式问题

    <a>链接是内联元素,必须设置成块元素block,才能有 width 和 height,不过你可以又定义display:block再定义成 display:inline 这样可以避免在IE ...

  10. 洛谷P1019:单词接龙(DFS)

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...