面试常考 - 数组和链表区别详细分析
时间复杂度排序:\(O(1)\) < \(O(logn)\) < \(O(n)\) < \(O(nlogn)\) < \(O(n^2)\) < \(O(n^3)\) < \(O(2^n)\) < \(O(n!)\) < \(O(n^n)\)
查找效率:红黑树的查找是 \(O(logn)\) ,快排时间复杂度是 \(O(nlogn)\)
数组和链表区别:
(在此,链表不再细分,如果要往下深入,自行查找单链表、双链表等的时间复杂度)
数组 | 链表 | |
---|---|---|
增 | \(O(n)\) | \(O(1)\) |
删 | \(O(n)\) | \(O(1)\) |
改 | 知道下标/索引\(O(1)\),知道元素本身最快修改速度 \(O(logn)\) | \(O(1)\) |
查 | 知道下标/索引\(O(1)\),知道元素本身最快查找 \(O(logn)\) | \(O(1)\) |