算法讲解
大约 2 分钟
算法讲解
什么是算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是你面对一个问题的解决思路,数学是解决此问题最好的工具。
算法类型
- 贪婪算法
- 递归算法
- 动态规划
- ......
什么是数据结构
数据结构是计算机存储、组织数据的方式。
数据结构类型
- 堆栈(Stack)
- 队列(Queue)
- 数组(Array)
- 链表(Linked List)
- 树(Tree)
- 图(Graph)
- 堆积(Heap)
- 散列表(Hash table)
编程语言
什么编程语言都可,主要看你擅长什么,具体算法数据结构理论上不依附于编程语言,但实际编写,的确会用到语言特性,所以具体情况具体看。
算法&数据结构
算法是解决问题的思路,逻辑思考的过程;而数据结构是数据存储的方式。其实数据怎么存储也是一个问题,解决这个问题的过程就也是所谓的算法,所以通常情况算法数据结构常常一起出现,多学习慢慢就明白了。
学习方法
时间复杂度
时间复杂度指输入数据大小为N时,算法运行所需花费的时间。
O(1)<O(logN)<O(N)<O(NlogN)<O(N2)<O(2N)<O(N!)
空间复杂度
- 输入空间: 存储输入数据所需的空间大小;
- 暂存空间: 算法运行过程中,存储所有中间变量和对象等数据所需的空间大小;
- 输出空间: 算法运行返回时,存储输出数据所需的空间大小;
O(1)<O(logN)<O(N)<O(N2)<O(2N)