时间复杂度:T(n)可以理解成执行一段程序的时间,n是数据规模
只要注意T(n)的最高次项或者说是增长趋势最大的项,因为当n足够大的时候其他可以忽略
系数也可以忽略,这时可以用硬件设备去弥补的
o(g(n))比T(n)时间复杂度高 θ(g(n))跟T(n)时间复杂度相当
w(g(n))比T(n)时间复杂度低 Ω(g(n))包含w和θ,最好的情况,几乎不用
O(g(n))包含o和θ,即T(n)最坏情况,现实生活中通常考虑最坏情况
线性表:一堆有限数的组合,无所谓顺序
线性表也属于ADT,一个抽象数据类型由三部分组成:数据,数据间的关系,相关操作
第一种线性表:数组
数组也分为两种,一个是在栈区的固定数组,一个是在堆区的动态数组
但是他们的内存空间都是连续的
第二种线性表:链表
一个链表包含了所储存的数值,和下一个的地址,因为链表的储存不是连续的,不可以用arr[i+1]访问到下一个元素
最后一个元素没有指向下一个的地址