Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

数据偏好

在面对问题 X 的时候,你有没有对应该使用数据结构 Y 还是 Z 产生过困惑?本文会涉及到与这些困境有关的各种主题。

备注

本文会提及“[某某]时间”的操作。这个术语来自于算法分析中的大 O 表示法

简而言之,它描述了最坏情况下的运行时长。用外行的话来说:

“随着问题域的大小增加,算法的运行时长……”

  • 常量时间,O(1):“……不会增加。”

  • 对数时间,O(log n):“……会以较慢的速度增长。”

  • 线性时间,O(n):“……会以相同的速度增长。”

  • 等等。

想象一下, 如果必须在一帧内处理300万个数据点. 不可能使用线性时间算法来设计这个特性, 因为数据的绝对大小, 将使运行时间大大超出分配的时间. 相比之下, 使用常量时间算法可以毫无问题地处理该操作.

总的来说, 开发人员希望尽可能避免进行线性时间操作. 但是, 如果保持线性时间运算的规模很小,