一 什么是算法?
在计算机领域中,算法是一系列的程序指令,用于处理特定的运算和逻辑问题.
衡量算法的好坏主要的指标是时间复杂度和空间复杂度
二 怎么衡量算法的优劣?
2.1时间复杂度
时间复杂度可以理解为,算法执行的基本次数,是对算法运行时间长短的衡量,但仅仅这么认为是不正确的,还需要符合以下规则:
- 如果运行时间是常数级,则用常数O(1)来表示
- 只保留时间函数中的最高阶项
- 如果最高阶项存在,则省略最高限项系数去掉
eg: T(n) = 3n =>时间复杂度 O(n) T(n)=3n^2 => 时间复杂度 O(n^2)
常见的时间复杂度按照由低到高 O(1)<O(logN)<O(n)<O(nlogN)<O(n^2)
2.2空间复杂度
空间复杂度是对一个算法在运行过程中临时占用的存储空间大小的衡量.
其中递归算法的空间复杂度和递归深度成正比.
三 什么是数据结构
数据结构是数据的组织,管理和存储格式,其使用目的是为了高效的访问和修改数据.
数据结构包含数组,链表这样的线性结构,包含树,图这样的复杂数据结构