美文网首页
算法和数据结构和算法时间复杂度

算法和数据结构和算法时间复杂度

作者: 952625a28d0d | 来源:发表于2019-01-31 17:35 被阅读18次

为什么学?

  • 编程的内功修炼
  • 去国内一流互联网公司的必要条件
  • 硅谷互联网公司要求当场写算法
  • 算法和数据结构是有趣且实用的

如何学?

如何精通一个领域?

  • 切碎知识点
  • 刻意练习
  • 反馈

数据结构

image.png

数据结构和算法列表

image.png

数据结构

  • Array (数组)
  • Stack (堆)/ Queue (队列)
  • PriorityQueue(优先队列)
  • LinkedList 链表
  • Tree (树 二叉树)
  • Binary Search Tree (二叉搜索树)
  • HashTable (哈希表)
  • Disjoint Set(并查集)
  • Trie(字母树)
  • BloomFilter(布鲁姆过滤器)
  • LRU Cache(高级数据结构)

算法

  • General Coinding(一般算法,经典编程题目)
  • In-order/Pre-order/Post-order traversal (基于树的前序、中序、后序)算法
  • Greedy (贪心算法)
  • Recursion/Backtrace (回溯递归算法)
  • Breadth-first search(深度优先算法)
  • Depth-first search(广度优先算法)
  • Divide and Conquer (分值算法)
  • Dynamic Programming(动态规划)
  • Binary Search(二分查找)
  • Graph(图)

时间复杂度和空间复杂度

image.png
  • 常数级运算的复杂度


    image.png
image.png

可以看出,for循环的复杂度取决于n的值的大小,如果只有一层循环,n=10的情况下就是O(10)的复杂度,那么双层循环则是O(10x10)的复杂度。

image.png image.png
  • 经典例子:


    image.png

前者通过for循环来计算的复杂度为O(n)
后者则为O(1)

所以看不同算法的话,对于优化有很大的提升。

  • 经典例子(递归算法)


    image.png

后者等于前两个数的和,那么复杂度怎么计算?

只有三行的代码计算,fib(6) 实际运行的时候却是下面的样子:


image.png

那么它的复杂度是O(2的n次方)
也就是指数级的复杂度

常用算法复杂度计算:


image.png
  • 二分查找 O(log n)
  • 二叉树的遍历,因为遍历二叉树每个节点仅遍历一次 O(n)
  • 排序 一维 O(n) 二维 O(log n)
  • 快排、归并排序 O(n*log n)

相关文章

  • Python-100天(二)-Python语言进阶

    数据结构和算法 算法:解决问题的方法和步骤 评价算法的好坏:渐近时间复杂度和渐近空间复杂度。 渐近时间复杂度的大O...

  • 数据结构(一)时间复杂度

    简介:如果想对数据结构和算法有基本的了解和认识,那么算法复杂度是前提,算法复杂度包含时间复杂度和空间复杂度,具体概...

  • Python语言进阶

    Python语言进阶 数据结构和算法 算法:解决问题的方法和步骤 评价算法的好坏:渐近时间复杂度和渐近空间复杂度。...

  • 【Python 100天从新手到大师】Python语言进阶

    Python语言进阶 数据结构和算法算法:解决问题的方法和步骤评价算法的好坏:渐近时间复杂度和渐近空间复杂度。渐近...

  • 一位算法工程师的自我修养

    数据结构与算法 基本算法思想动态规划贪心算法回溯算法分治算法枚举算法 算法基础 时间复杂度 空间复杂度 最大复杂度...

  • 数据结构和算法

    01_数据结构和算法绪论.mp4 02_谈谈算法.mp4 03_时间复杂度和空间复杂度.mp4 04_时间复杂度和...

  • 《架构师训练营》之数据结构、网络通信、数据库原理

    极客时间《架构师训练营》第八周学习笔记 数据结构与算法 空间复杂度和时间复杂度 算法的优劣主要从算法的执行时间和所...

  • 1.公共知识——数据库结构和算法

    算法 算法的定义 算法的特征 算法的基本要素 算法的复杂度 数据结构 数据结构的定义 逻辑结构和物理结构 线性结构...

  • 算法复杂度分析

    复杂度分析: 数据结构和算法解决的两大问题:快和省。运行快,储存省。 复杂度分析是算法学习的精髓:时间复杂度,空间...

  • 数据结构01-时间复杂度与空间复杂度

    1:算法复杂度 1.1:数据结构和算法定义 数据结构(data structure):用来存放和管理(比如插入,删...

网友评论

      本文标题:算法和数据结构和算法时间复杂度

      本文链接:https://www.haomeiwen.com/subject/teflsqtx.html