Skip to content

Commit 8c148ca

Browse files
committed
Fix complexity
1 parent 2931bb3 commit 8c148ca

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

tutorial06/tutorial06.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,21 @@ object = %x7B ws [ member *( ws %x2C ws member ) ] ws %x7D
2929
* 动态数组(dynamic array):可扩展容量的数组,如 C++ 的 [`std::vector`](http://en.cppreference.com/w/cpp/container/vector)
3030
* 有序动态数组(sorted dynamic array):和动态数组相同,但保证元素已排序,可用二分搜寻查询成员。
3131
* 平衡树(balanced tree):平衡二叉树可有序地遍历成员,如红黑树和 C++ 的 [`std::map`](http://en.cppreference.com/w/cpp/container/map)[`std::multi_map`](http://en.cppreference.com/w/cpp/container/multimap) 支持重复键)。
32-
* 哈希表(hash table):通过哈希函数能实现 O(1) 查询,如 C++11 的 [`std::unordered_map`](http://en.cppreference.com/w/cpp/container/unordered_map)`http://en.cppreference.com/w/cpp/container/unordered_multimap`(http://en.cppreference.com/w/cpp/container/unordered_multimap) 支持重复键)。
32+
* 哈希表(hash table):通过哈希函数能实现平均 O(1) 查询,如 C++11 的 [`std::unordered_map`](http://en.cppreference.com/w/cpp/container/unordered_map)`http://en.cppreference.com/w/cpp/container/unordered_multimap`(http://en.cppreference.com/w/cpp/container/unordered_multimap) 支持重复键)。
3333

3434
设一个对象有 n 个成员,数据结构的容量是 m,n ⩽ m,那么一些常用操作的时间/空间复杂度如下:
3535

36-
| |动态数组 |有序动态数组|平衡树 |哈希表 |
37-
|---------------|:-------:|:----------:|:------------:|:-------:|
38-
|自定成员次序 |||||
39-
|初始化 n 个成员|O(n) |O(n log n) |O(n log n) |O(n) |
40-
|加入成员 |分摊 O(1)|O(n) |分摊 O(log n) |分摊 O(1)|
41-
|移除成员 |O(n) |O(n) |分摊 O(log n) |分摊 O(1)|
42-
|查询成员 |O(n) |O(log n) |O(log n) |O(1) |
43-
|遍历成员 |O(n) |O(n) |O(n) |O(m) |
44-
|检测对象相等 |O(n^2) |O(n) |O(n) |O(m) |
45-
|空间 |O(m) |O(m) |O(n) |O(m) |
36+
| |动态数组 |有序动态数组|平衡树 |哈希表 |
37+
|---------------|:-------:|:----------:|:--------:|:--------------------:|
38+
|有序 |||||
39+
|自定成员次序 |||||
40+
|初始化 n 个成员|O(n) |O(n log n) |O(n log n)|平均 O(n)、最坏 O(n^2)|
41+
|加入成员 |分摊 O(1)|O(n) |O(log n) |平均 O(1)、最坏 O(n) |
42+
|移除成员 |O(n) |O(n) |O(log n) |平均 O(1)、最坏 O(n) |
43+
|查询成员 |O(n) |O(log n) |O(log n) |平均 O(1)、最坏 O(n) |
44+
|遍历成员 |O(n) |O(n) |O(n) |O(m) |
45+
|检测对象相等 |O(n^2) |O(n) |O(n) |平均 O(n)、最坏 O(n^2)|
46+
|空间 |O(m) |O(m) |O(n) |O(m) |
4647

4748
在 ECMA-404 标准中,并没有规定对象中每个成员的键一定要唯一的,也没有规定是否需要维持成员的次序。
4849

0 commit comments

Comments
 (0)