顺序表和链表的比较

来源:互联网 发布:他知而自不知的我属于 编辑:程序博客网 时间:2024/06/05 04:25

     这段时间开始学习软考里面的内容,对顺序表和链表,比较着学习理解的更多了,跟大家分享一下。

 

一、空间性能

1、存储密度:

    顺序表存储一个数据用一个空间;而链式存储,存储数据的同时还要存储指针,此时用链式表存储数据要用两个空间。所以,存储密度(数据的密度)上,顺序存储更优;

2、容量分配:

    我们使用的数组采用顺序存储的方式,在使用之前,会先定义数组的容量,比如:intArray= new int[10];而链式存储,可以动态添加,需要时再添加,用指针指向新添加的数据。

二、在时间性能上

1、插入和删除

   链式存储中删除和插入节点影响的量只有一个节点,删除节点,前驱节点用指针直接指向后继节点;插入节点,把插入节点的后继节点指向插入节点的位置,前驱节点再用指针直接指向插入节点,只需要1的时间复杂度。

   顺序存储删除某个节点后,还要把后面的节点前移(除了删除最后一个)。插入时要把节点后移(除了插到最后)。链式存储的时间复杂度优于顺序存储;

2、查找

   链式和顺序存储相同,都是使用顺序查找,从第一个元素开始,依次向后查找,消耗的时间相同。但如果顺序表的数据按从小到大的顺序排列,使用二分查找法,效率会提高;

3、读运算

   顺序表:随机存取;

   链表:从第一个元素开始,next——>next…查到最后,最好的情况是,需要的元素在第一个位置,时间复杂度是1。最坏的情况是,需要的元素在最后一个位置,时间复杂度是n。

    再次学习软考的内容,理解的更多了些,如果有歧义的地方,希望大家指出,帮小虾米度过难关。

0 0
原创粉丝点击