复杂的权衡之时间、空间和单链表结构

单链表结构表现出和数组不同的时间和空间权衡。

下表为单链表结构的运行时间:

操作 运行时间
在第i个位置访问 O(n),平均情况
在第i个位置替换 O(n),平均情况
在开始处插入 O(1),最好情况和最差情况
在开始处删除 O(1),最好情况和最差情况
在第i个位置插入 O(n),平均情况
在第i个位置删除 O(n),平均情况

单链表结构相对于数组的主要优点并不是时间性能,而是内存性能。当必须调整数组的大小的时候,其时间和内存都是线性的。当调整链表结构的大小的时候(这在每次插入或删除的时候都会发生),其时间和内存都是常数的。此外,在链表结构中没有浪费内存的问题。链表结构的物理大小不会超过其逻辑大小。链表结构确实有一个额外的内存代价,因为单链表结构必须要为指针使用m个内存单元格。这个代价在双链表中更是变本加厉,因为双链表的节点有两个链接。

结束!

原文地址:https://www.cnblogs.com/aaronthon/p/13627270.html