数据结构时间复杂度

数组ARRARY

数组使用一块连续的内存空间保存数据,访问第n个数据的时间复杂度为O(1),但是要在数组中查询一个指定的数据的时间复杂度为O(N)。

在数组中插入或者删除数据,最好的情况是在数组的末尾插入删除,时间复杂度为O(1),但是最好坏的情况是在第一个位置插入或者删除数据,后面的数据都需要移动,时间复杂度为O(N)。

链表LINKLIST

链表是在非连续的内存单元格中保存数据并通过指针连接在一起,最后一个节点指针指向NULL。

查找数据的时间复杂度为O(N),插入和删除的时间复杂度为O(1),只需要移动指针即可。

堆栈STACK

先进后出的原则(LIFO),通过数组和链表实现,所有操作都在顶部执行,包括查看、压栈、堆栈。

队列QUEUE

先进先出的原则(FIFO),通过数组和链表实现,只允许在队尾添加数据,在队头删除数据,可查看队头队尾数据

时间复杂度 查看 更新 插入 删除
数组 O(1) O(1) O(n)  O(n)
链表 O(n) O(1) O(n)  O(1)
posted @ 2020-06-28 22:59  Nancy-Yang  阅读(430)  评论(0)    收藏  举报