小曹同学的百草园
首页
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小曹同学

一个普通的前端开发
首页
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据结构

    • 简介
      • 数据结构与算法简介
        • 利用LeetCode刷题(集中某一类型刷题)
      • 复杂度计算
        • 时间复杂度
        • 空间复杂度
    • 栈
    • 队列
    • 链表
    • 集合
    • 字典
    • 树
    • 图
  • 前端算法
  • 数据结构
小曹同学
2022-02-20
目录

简介

# 数据结构与算法简介

image-20211120164304139

关系:程序 = 数据结构 + 算法。

数据结构为算法提供服务,算法围绕数据结构操作。

数据结构是基础,算法是数据结构的运用与进阶。

  • 数据结构:计算机存储。组织数据的方式
    • 栈、队列、链表
    • 集合、字典
    • 树、堆、图
  • 算法:一系列解决问题的清晰指令。
    • image-20211120164724185
    • 链表:遍历链表,删除链表节点
    • 树、图:深度/广度优先遍历
    • 数组:冒泡/选择/插入/归并/快速排序、顺序排序/二分搜索

# 利用LeetCode刷题(集中某一类型刷题)

# 搜题方法

  • 通过题号搜索

    • image-20211120165028853
  • 通过难度、状态、列表、标签搜索

    • image-20211120165103583

# 做题方法

  • 快捷键
    • image-20211120165551087

# 复杂度计算

# 时间复杂度

image-20211120165952913

image-20211120170151689

  • O(1)实例

    • let i = 0;
      i += 1
      
      1
      2

      每次执行代码文件时只执行一遍。

  • O(n)

    • for(let i = 0; i<<n;i+= 1){
          console.log(i)
      }
      
      1
      2
      3

      循环n次执行n次代码。

  • O(1) + O(n) = O(n)

  • O(n) * O(n) = O(n ^2)

    • image-20211120170608043
  • O(logN)

    • image-20211120170640747

# 空间复杂度

image-20211120170738235

代码所占内存大小

  • O(1):因为代码中只声明了单个变量,单个变量所占的内存为1

    • image-20211120170804875
  • O(n):list数组内添加n个值,相当于占用了n个内存单元。所有代码的空间复杂度就是O(n)

    • image-20211120170927395
  • O(n^2):存储的变量为n的二次方个。

    • image-20211120171031242
编辑 (opens new window)
上次更新: 2022/02/21, 05:57:00
栈

栈→

最近更新
01
优雅代码书写之道
06-07
02
图片懒加载
05-05
03
项目部署
04-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式