理解算法的时间与空间复杂度怎么计算(加强练习);
时间复杂度O(n),n表示运行代码行数所需的行数;
表示方法O(1),O(n),O(logn),O(n),O(nlongn);
数组:线性表、连续内存中存储相同类型的数据;
优点:查找快O(1);缺点:删除、插入效率不高O(n);
链表:线性表、将零碎内存串联一起存取数据;
优点:插入、删除效率高O(1);缺点:查找慢O(n);
单链表:头节点存储地址、尾节点存储空值;
双链表:比单链表多个前驱节点
优点:可以返回查找上个节点 缺点:内存多花费一倍。
所谓的空间换时间;
循环链表:特殊的单链表。尾节点指向头节点。
(知道使用的时机,加强练习)
顺便复习了Java中集合框架:
Collection(集合):单列表的集合。
Map(图):以键-值的形式存储数据。
Collection:父接口,子接口有List、Set、Queue。
List:有序(存取)、允许重复。Set:唯一、无序。
List:ArrayList(基于数组的集合容器,同样继承了数组的优缺点)、LinkList(基于链表的集合容器,继承了链表的优缺点)。
Set:TreeSet、HashSet(子类(HashiLinkSet)继承).
Map:HashMap。
(有部分有待复习;)