gpt4 book ai didi

algorithm - 快速排序 "friendly"到 on-CPU 缓存吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:49 25 4
gpt4 key购买 nike

假设要排序的数组比最大的 CPU 缓存大得多(至少大两个数量级)。

由于快速排序涉及将高于枢轴的值移动到枢轴之上,反之亦然相反,我想它在排序的开始阶段对 CPU 缓存不是很友好?

在后期阶段(小子数组)它可能对缓存友好,但初始阶段的成本如何?

有没有人计算出一些关于缓存未命中和缓存命中成本的公式,以及它如何影响快速排序的总体成本?

最佳答案

高性能语言中的典型排序算法不会像理论所建议的那样在一个元素处停止递归,而是在 2^N 个元素(16 个左右)处停止递归,以便在最后阶段使用硬编码排序。这使高速缓存行内的排序保持高效。

不过,在初始阶段,两个元素之间的间隔是 200 还是 20000 个并不重要。无论哪种方式,它们都在不同的缓存行上。

关于algorithm - 快速排序 "friendly"到 on-CPU 缓存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com