顺序表和单链表的插入删除操作时间复杂度的区别
顺序表和单链表的插入删除操作时间复杂度的区别
最近在学习数据结构,看到如果需要用到大量的插入和删除操作,单链表的效率会高于顺序表。看到这里时内有有个疑惑,这两种数据结构的插入和删除操作的时间复杂度不都是O(n)吗?为什么会有这种说法呢?
因此自己思考了下,结合计算机原理得出了一点自己的思考:
单链表和顺序表的插入删除操作的耗时因素主要差别于,数据元素的大小是不一定的,如果数据元素本身需要一块大内存,单链表里面费时的操作也就是指针后移,对指针类型这样一个小内存数据类型进行读取、CPU运算、和存储,而顺序表中费时的操作是对这种大内存数据元素的读取、CPU运算和存储,这明显比前者耗时更多。所以这两种存储结构线性表的插入操作虽然时间复杂度都是O(n),但这个n的单位时间是不同的,前者比较稳定且小,后者和数据元素大小有关。
下一篇:
进阶:二分查找的函数实现