Sorting 为什么我们在Timsort中选择最小运行大小作为2的幂?
我在读关于他的书。我偶然发现了下面的句子 Minrun的选择范围为32到64(含32到64),因此数据大小除以Minrun等于或略小于2的幂Sorting 为什么我们在Timsort中选择最小运行大小作为2的幂?,sorting,timsort,Sorting,Timsort,我在读关于他的书。我偶然发现了下面的句子 Minrun的选择范围为32到64(含32到64),因此数据大小除以Minrun等于或略小于2的幂 为什么我们将最小运行大小保持为2的幂?如果我们选择这样的尺寸,内部是否有任何特殊的优化?请帮帮我。这句话后面有对源代码的引用。那里的评论说:“在这里选择2的一些幂很重要,这样合并最终会达到完美的平衡(见下一节)。”假设这是一个优化的Timsort,它会在每次传递时改变合并方向(原始数组和临时数组之间),然后应该选择minrun,这样数据的大小除以min r
为什么我们将最小运行大小保持为2的幂?如果我们选择这样的尺寸,内部是否有任何特殊的优化?请帮帮我。这句话后面有对源代码的引用。那里的评论说:“在这里选择2的一些幂很重要,这样合并最终会达到完美的平衡(见下一节)。”假设这是一个优化的Timsort,它会在每次传递时改变合并方向(原始数组和临时数组之间),然后应该选择minrun,这样数据的大小除以min run,在这句话之后就有了对源代码的引用。那里的评论说:“在这里选择2的某些幂很重要,这样合并最终会达到完美的平衡(见下一节)。”假设这是一个优化的Timsort,它在每次传递时改变合并方向(原始数组和临时数组之间),那么应该选择minrun,以便将数据大小除以min run