01数据结构与算法总览_pythoner学习数据结构与算法系列

文章目录

  • 系列目录
  • 思维导图
  • 一、数据结构
    • 1.一维数据结构
    • 2.二维数据结构
    • 3.特殊数据结构
  • 二、算法
    • 此算法非彼算法
    • 分类—八大点

系列目录

01 ~ 10篇 11 ~ 20篇
01 数据结构与算法总览 11 二分查找
02 复杂度分析 12 动态规划
03 数组、链表、跳表 13 字典树和并查集
04 栈、队列、优先队列、双端队列 14 高级搜索
05 哈希表、映射、集合 15 红黑树和AVL树
06 树、二叉树、二叉搜索树 16 位运算
07 泛型递归、树的递归 17 布隆过滤器和LRU缓存
08 分治、回溯 18 排序算法
09 深度优先搜索和广度优先搜索 19 高级动态规划
10 贪心算法 20 字符串算法

思维导图

01数据结构与算法总览_pythoner学习数据结构与算法系列_第1张图片

一、数据结构

数据结构主要分为三大块:一维数据结构、二维数据结构、特殊数据结构

1.一维数据结构

可以分为基础和高级两大类

  • 基础:
    数组 array(string),链表 linked list

  • 高级:
    栈 stack,队列queue,双端队列deque,集合set,映射map(hase or map),etc
    映射map 在python中叫字典 dict
    栈 stack:先进后出 /后进先出 LIFO last in first out
    队列queue:先进先出 FIFO first in first out

2.二维数据结构

通常由一维数据结构泛化产生

可以简单理解为:
当一个一维的链表的分叉有两个的时候,
它就变成了一个二维的数据结构,相当于树结构

  • 基础:
    树 tree 图 graph

  • 高级:

    • 在树的基础上加 了很多特殊判断和约定条件
    • 二叉搜索树:它的根节点大于左子树且小于它右子树的全部节点
    • 二叉搜索树的一些特殊结构:red-black tree,AVL

    例:

    • 二叉搜索树 binary search tree(red-black tree,AVL),
    • 堆 heap,并查集 disjoint set,字典树 Trie,etc

3.特殊数据结构

主要是用于工程中特定的情景

  • 位运算 Bitwise, 布隆过滤器 BloomFilter
  • 缓存 LRU Cache

二、算法

此算法非彼算法

这里的算法不是算法工程师title对应的那个算法

本文及本系列文章所指皆为《数据机构与算法》里的算法,属于计算机科学的一门课程,国外的高校会拆成两门课 《数据结构》 和《算法》,有本科阶段的也有研究生阶段的,本科和研究生阶段的主要是难度和广度不同 ,国内会把这两门课连着开,或者放在一起开,最主要是这两门课在学习中是分不开的:

  • 很多数据结构是为某一算法而服务的,
  • 很多算法其实是专门为这个数据结构而设计的

算法工程师对应的算法主要就是指机器学习算法

  • 从数据中获取规律(模型)
  • 解决一些问题(替代人工)
  • 包含传统机器学习,数据挖掘,人工智能等

分类—八大点

基础: 公理 | 基石, 任何的高阶算法都会转化为if-else/while/recursion

  • ① if-else,switch —>branch 判断,分支
  • ②for,while loop —>iteration循环 ,迭代
  • ③递归 Recursion (Divide & Conquer,Backtrance)

高阶: 找到问题的重复单元进行泛化

  • ④搜索 Search:深度优先搜索 Depth first search(DFS),
    广度优先搜索 Breadth first search(BFS),A*,etc
  • ⑤动态规划 Dynamic Programming
  • ⑥二分查找Binary Search
  • ⑦贪心Greedy 排序sort
  • ⑧数学 Math几何Geometry

下一篇: 02 训练准备和复杂度分析

你可能感兴趣的:(数据结构与算法)