数据结构与算法
文章平均质量分 66
zheng.plus
这个作者很懒,什么都没留下…
展开
-
链表和数组的插入删除时间复杂度都是o(n),为什么链表效率高?
问题: 数组在插入删除的时候,要移动元素,复杂度为o(n)。 链表尽管不需要移动元素,只用改变指针关系,但是要插入或删除第i个节点,必须先找到第i-1个节点,复杂度为o(n)。 总体完成一次操作,大家都是o(n)的复杂度,为什么教材和网路上都说,要频繁删除插入操作时,选链表? 答案: 因为这个O(n)内涵不同,分别是写O(n)和读O(n)。数组擅长读取,链表擅长写入。写入要先读取定位,再写入。读取场景:任意序位读取,复杂度: 数组O(1),链表O(n)。写入场景:任意序位写入,定位复杂度:数组O(1),链表原创 2020-08-02 23:44:58 · 3994 阅读 · 0 评论 -
链表 python实现
单链表的python实现 class Node(object): def __init__(self, item): self.data = item self.next = None class SingleLinkedList(object): def __init__(self): self.head = None def is_empty(self): return self.head is None原创 2020-07-30 00:55:46 · 68 阅读 · 0 评论