哪些程序/算法在运行时更改其数据结构表示以获得更好的性能?
背景: 数据结构“定义”了现实世界中的概念在计算机内存中的结构和表示方式。对于不同类型的计算,应该/可以使用不同的数据结构以实现可接受的性能(例如,链表与数组实现)。
自适应(与自我更新相对)数据结构是根据具体使用模式更改其内部状态的数据结构(例如,自平衡树)。这些更改是内部的,即取决于数据。此外,这些更改是按设计预期进行的。
其他算法可以从外部的表示形式更改中受益。例如,在矩阵乘法中,转置“第二个矩阵”(以便高效地使用缓存)是一个众所周知的性能技巧。这实际上是将矩阵表示从行优先顺序更改为列优先顺序。因为“A”与“Transposed(A)”不同,所以在乘法后再次对第二个矩阵进行转置,以保持程序语义的正确性。
第二个例子是在程序启动时使用链表填充“数据结构”,并在列表内容变得“稳定”后更改为基于数组的实现。
我正在寻找在其应用程序中执行外部表示形式更改的类似经验的程序员,以便在程序的显式部分更改数据结构的表示(选择实现方式)时获得更好的性能。