赞
踩
程序 = 数据结构 + 算法
算法是求解问题的步骤
必须要在固定的步骤内解决问题,死循环不算作算法
必须要能够通过计算机代码实现,同时还需要具有输入和输出
输入取自于某个特定的对象的集合
输出是与输入相关联的量
一个算法应当可以正确的解决问题
对于非法数据可以做出反应
低时间复杂度&空间复杂度
O用来表示数量级,我们在考虑时间表达式的时候只考虑最高项
两个时间复杂度相加,我们只保留最高的一项
两个时间复杂度相乘,结果就是相乘
O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1)<O(log_2n)<O(n)<O(nlog_2n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n) O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
真正影响时间复杂度的量级由循环结构体决定
对于数组,要考虑最优情况的时间复杂度和最坏情况的时间复杂度
内存需求包括:代码本身占用的空间,使用的数据
用S表示空间复杂度,当为S(1)时,被称为原地工作
空间复杂度主要由变量所决定,同时也只取最高阶
每一层所占用的数据内存*递归次数
空间复杂度=变量阶数(如一维数组)*递归次数,同时数据长度可能也会改变
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。