语言C/C++:好比认识的汉字
数据结构:集合,线性,树形,图:好比成语
算法:好比高尚的品德
数据的存储方式:
(1)顺序存储形式:逻辑相邻,物理也相邻
(2)链式存储形式:逻辑相邻,物理不一定相邻
时间复杂度
算法优劣的判断依据
排序时需要考虑稳定性
(1)算法的时间复杂度:
语句执行的次数和问题规模(函数传递进来的形参)之间的函数关系
计算方法:
1.只保留高阶项:只管执行次数最多的语句计算
2.不要系数:只考虑问题规模发展的趋势,系数并不起到决定性作用
递归函数的时间复杂程度:
O(C* n*2)–>O(n):乘2是因为调用了n次,回归了n次,系数可以省略
空间复杂度
(2)算法的空间复杂度:
执行该算法需要的 额外辅助空间(内存—>变量) 和问题规模之间的函数关系
实现该算法需要额外定义多少个变量来实现(自己的形参不算)
因为无论n的值为多少,局部变量只有4个,和规模没有关系,所以空间复杂程度为O(1)
归并算法的空间复杂程度
n为多少就需要定义长度为n的数组来存放新排列好的数据
递归函数空间复杂程度
空间复杂程度:O(每次函数占用空间*递归次数)