IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【数据结构与算法】data structures & algorithms 第一章:复杂度分析 -> 正文阅读

[数据结构与算法]【数据结构与算法】data structures & algorithms 第一章:复杂度分析

数据结构与算法系列文章目录

【数据结构与算法】data structures & algorithms 第一章:复杂度分析
【数据结构与算法】data structures & algorithms 第二章:基本概念
【数据结构与算法】data structures & algorithms 第三章:线性数据结构
【数据结构与算法】data structures & algorithms 第四章:树的数据结构
【数据结构与算法】data structures & algorithms 第五章:图的数据结构
【数据结构与算法】data structures & algorithms 第六章:各类常见的排序算法
【数据结构与算法】data structures & algorithms 第七章:散列表算法的初步运用
【数据结构与算法】data structures & algorithms 第八章:红黑树的理解与使用



一、时间复杂度

  • 简介

    • 不同计算机的软硬件环境不同,所以不能通过计算机上运行所消耗的时间来度量;
    • 一般地,时间复杂度是用总的执行次数来间接表示程序的运行时间,这样根据不同性能的计算机,单位时间内执行速度来度量时间的消耗;
    • 数据结构中,每条语句的执行次数,被称为该语句的频度;在计算代码的频度时,一般会得到一个式子,此时需要简化,取最大的因子;如有 2 n + 3 n 2 + 1 2n + 3n^2 + 1 2n+3n2+1?,通过 n → ∞ n\rightarrow \infty n,我们可以把式子简化为 n 2 n^2 n2?;
    • 一般地,习惯用大O表示法,表达 T ( n ) T(n) T(n)的时间复杂度,即 O ( 频 度 ) O( 频度 ) O();一般情况下,以最坏情况的频度作为时间复杂度;
  • 计算

    • 寻找算法的基本语句:执行次数最多的语句,通常在最内侧循环的循环体中;
    • 将基本语句执行次数的数量级放入大O中;
    • 常见的时间复杂度
      O ( 1 ) < O ( log ? n ) < O ( n ) < ( n log ? n ) < O ( n 2 ) < o ( n 3 ) < ? < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1) < O(\log n) < O(n) < (n\log n) < O(n^2) < o(n^3) < \cdots < O(2^n) < O(n!) < O(n^n) O(1)<O(logn)<O(n)<(nlogn)<O(n2)<o(n3)<?<O(2n)<O(n!)<O(nn)
      一般地,算法没有循环体的时间复杂度为 O ( 1 ) O(1) O(1),即常数时间 O ( log ? n ) , O ( n ) , O ( n log ? n ) , O ( n 2 ) , O ( n 3 ) O(\log n),O(n),O(n\log n),O(n^2),O(n^3) O(logn),O(n),O(nlogn),O(n2),O(n3)等称为多项式时间,带有这类时间复杂度的算法才算是可执行的有效算法 O ( 2 n ) , O ( n ! ) O(2^n),O(n!) O(2n),O(n!)等被称为指数时间

二、空间复杂度

  • 简介

    • 算法运行过程中临时占用空间大小的度量,用 S ( n ) S(n) S(n)定义;
    • 一般地,只注意定义变量的语句;
    • 计算复杂度时,观察与n的变化关系,如 i n t ?? a = 0 int \ \ a = 0 int??a=0,与n无关, i n t ?? b [ n ] int \ \ b[n] int??b[n],与n有关;
  • 计算

    • 程序占用存储空间与输入值无关,则为 O ( 1 ) O(1) O(1)
    • 如果随着输入值n的增大,申请的临时空间成线性增长,则为 O ( n ) O(n) O(n)
    • 如果随着输入值n的增大,申请的临时空间成 n 2 n^2 n2增长,则为 O ( n 2 ) O(n^2) O(n2)
    • 如果 ? \cdots ? ? \cdots ? n 3 n^3 n3增长,则为 O ( n 3 ) O(n^3) O(n3)
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:36:29  更:2021-10-28 12:37:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:36:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码