00 初探算法和数据结构
学习路线
什么是算法
简单来说,算法就是解决问题的一系列方法。
在计算机领域,算法是一系列程序指令,用于处理特定的运算和逻辑问题。
算法分类:
基础算法
搜索算法(深度优先搜索(DFS)、广度优先搜索(BFS)、二分搜索等)
排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)
图算法(Dijkstra算法、Floyd算法、最小生成树算法等)
动态规划算法(背包问题,最长公共子序列等)
分治算法(快速排序、归并排序、大整数乘法等)
贪心算法(霍夫曼编码)
回溯算法(皇后问题,数独问题等)
专业领域算法
服务于特定领域,如阿尔法狗战胜围棋冠军,背后就是人工智能算法。
衡量算法优劣的主要标准是时间复杂度和空间复杂度。
时间复杂度:一个算法运行时间长短的量度,T(n)=O(f(n)).
空间复杂度:一个算法在运行过程中临时占用存储空间大小的量度,S(n)=O(f(n)).
什么是数据结构
数据结构(data structure)是数据的组织、管理和存储格式,其使用目的是为了高效的访问和修改数据。
常见的数据结构:
线性数据结构(数组、链表、以及从它们所衍生出来的栈、队列)
树结构(二叉树:红黑树、AVL树,非二叉树:一般文件系统所使用的B-树,关系型数据库使用的索引结构B+树,用于数据压缩的哈夫曼树)
图结构
复合数据结构(哈希表、跳表、线段树、哈希链表)
参考资料
[1] Hello 算法
[2] 算法导航
评论