Algorithm Lab

数据结构选择器

调节访问模式,观察 Dynamic Array、Linked List、Hash Table、Balanced Tree 的相对成本如何改变。

当前数据规模 n = 10,000

参数

主导压力:按键查找
10,000

使用对数滑杆,便于观察小数据与大数据下的差异。

45%

按下标读取第 i 个元素,越高越偏向连续数组。

15%

频繁在开头增删元素时,搬移成本会被放大。

30%

根据 key 查询记录,哈希与平衡树通常比线性扫描稳定。

成本对比

适配分越高越合适
评分条:综合估算,越长越好。 成本指数:相对最佳结构,越低越好。

当前压力分布

三个频率不强制相加为 100%,它们表示这类操作在练习场景里的重要程度。

课堂复杂度速记

结构 随机访问 头部插删 按键查找 有序遍历
Dynamic Array O(1) O(n) O(n) 排序后 O(n log n)
Linked List O(n) O(1) O(n) 通常需排序或额外维护
Hash Table 不适合下标访问 无头部语义 平均 O(1) 取键后排序
Balanced Tree O(log n) 级别 O(log n) O(log n) 中序扫描天然有序

模型用于比较取舍,不代表某个语言运行时或库的精确常数。