mirror of
https://github.com/krahets/hello-algo.git
synced 2025-10-31 02:17:06 +08:00
Update Q&A of hash_table and time_complexity Chapter (#1760)
* Update summary.md @Richard-Zhao93 的回答非常好,同时觉得"如果在开头能了解到这部分s,对初学者来说,可能更容易接受这些陌生的概念。"的建议很有道理 * Update QA of time_complexity * Enhance explanation of hash tables vs arrays Clarify the advantages of hash tables over arrays for key-value mapping. * Update summary.md --------- Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
@ -47,3 +47,9 @@
|
||||
假设取 $n = 8$ ,你可能会发现每条曲线的值与函数对应不上。这是因为每条曲线都包含一个常数项,用于将取值范围压缩到一个视觉舒适的范围内。
|
||||
|
||||
在实际中,因为我们通常不知道每个方法的“常数项”复杂度是多少,所以一般无法仅凭复杂度来选择 $n = 8$ 之下的最优解法。但对于 $n = 8^5$ 就很好选了,这时增长趋势已经占主导了。
|
||||
|
||||
**Q** 是否存在根据实际使用场景,选择牺牲时间(或空间)来设计算法的情况?
|
||||
|
||||
在实际应用中,大部分情况会选择牺牲空间换时间。例如数据库索引,我们通常选择建立 B+ 树或哈希索引,占用大量内存空间,以换取 $O(\log n)$ 甚至 $O(1)$ 的高效查询。
|
||||
|
||||
在空间资源宝贵的场景,也会选择牺牲时间换空间。例如在嵌入式开发中,设备内存很宝贵,工程师可能会放弃使用哈希表,选择使用数组顺序查找,以节省内存占用,代价是查找变慢。
|
||||
|
||||
Reference in New Issue
Block a user