01数据结构与算法总览_pythoner学习数据结构与算法系列
系列目录
思维导图
一、数据结构
数据结构主要分为三大块:一维数据结构、二维数据结构、特殊数据结构
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
文章来源: blog.csdn.net,作者:诡途,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_35866846/article/details/107641306
- 点赞
- 收藏
- 关注作者
评论(0)