数据结构——线性表总结

来源:互联网 发布:福建万照软件 编辑:程序博客网 时间:2024/06/13 09:07

1、线性表

1、1 顺序表的效率分析

       顺序表上的插入和删除是顺序表中时间复杂度最高的部分。在顺序表中插入一个数据元素时,主要的耗时部分是循环移动数据元素部分。循环移动数据元素的效率和插入数据元素的位置i有关。最坏情况是i=0,需要移动size个数据元素;最好情况是i=size,需要移动0个元素。设pi是第i个存储位置插入一个数据元素的概率设顺序表中数据元素的个数为n,当在顺序表的任何位置上插入数据元素的概率相等时,有pi=1/(n+1),则向顺序表插入一个数据元素需要移动的数据元素的平均次数为:

       在顺序表中删除一个元素时,主要的耗时部分也是循环移动数据元素。循环移动数据元素的效率和删除数据元素的位置i有关。最坏情况是i=0,需要移动size-1个数据元素;最好情况是i=size,需要移动0个元素。设qi是删除第i个存储位置数据元素的概率,则顺序表中的数据元素个数为n,当删除顺序表任何位置上数据元素的概率相等时,有qi=1/n,则删除顺序表中一个数据元素所需移动数据元素的平均次数为:

       因此,在顺序表中插入和删除一个数据元素的时间复杂度是O(n)。顺序表中的其余操作都和数据元素个数n无关,因此,顺序表中取元素和其他操作的时间复杂度是O(1)。
总结:顺序表的主要优点是:取数据元素操作的时间效率高,内存空间利用效率高。
           顺序表的主要缺点是:插入和删除操作时需要移动较多的数据元素。

1、2 单链表的效率分析

       单链表的插入和删除操作的时间效率分析方法和顺序表的插入和删除操作的时间效率分析情况类似。因此,当在单链表的任何位置插入数据元素的概率相等时,在单链表中插入一个数据元素时比较数据元素的平均次数为:

       删除单链表的一个数据元素时比较数据元素的平均次数为:

       因此,单链表插入和删除操作的时间复杂度为O(n)。另外,单链表取数据元素的时间复杂度也为O(n)。

1、3 顺序表和单链表的比较

       顺序表和单链表完成的逻辑功能完全一样,但两者的应用背景及不同情况下的使用效率还是有所差别。
       顺序表的主要优点是支持随机读取以及内存空间利用效率高;顺序表的主要缺点是插入和删除操作时需要移动较多的数据元素。
       和顺序表相比,单链表的主要优点是插入和删除操作时不需要移动数据元素。单链表的主要缺点是每个节点中要有一个指针,因此单链表的空间利用率略低于顺序表。另外,单链表不支持随机读取,单链表取数据元素操作的时间复杂度为O(n);而顺序表取数据元素操作的时间复杂度为O(1)。




1 0
原创粉丝点击