顺序表(数组)和链表的比较

特点对比: 1、存取方式上,数组可以顺序存取或者随机存取,而链表只能顺序存取; 2、存储位置上,数组逻辑上相邻的元素在物理存储位置上也相邻,而链表不一定; 3、存储空间上,链表由于带有指针域,存储密度不如数组大; 4、按序号查找时,数组可以随机访问,时间复杂度为O(1),而链表不支持随机访问,平均需要O(n); 5、按值查找时,若数组无序,数组和链表时间复杂度均为O(1),但是当数组有序时,可以采用折半查找将时间复杂度降为O(logn); 6、插入和删除时,数组平均需要移动n/2个元素,而链表只需修改指针即可; 7、空间分配方面,数组在静态存储分配情形下,存储元素数量受限制,动态存储分配情形下,,虽然存储空间可以扩充,但需要移动大量元素,导致操作效率降低,而且如果内存中没有更大块连续存储空间将导致分配失败;链表存储的节点空间只在需要的时候申请分配,只要内存中有空间就可以分配,操作比较灵活高效;

数组应用场景: 1、注重存储密度; 2、经常做的运算是按序号访问数据元素; 3、数组更容易实现,任何高级语言都支持; 4、构建的线性表较稳定。 链表应用场景: 1、对线性表的长度或者规模难以估计; 2、频繁做插入删除操作; 3、构建动态性比较强的线性表。

今日的执着,会造成明日的后悔。

顺序表(数组)和链表的比较

相关文章:

你感兴趣的文章:

标签云: