请注意,本文不是讲解处理器缓存,如果你对cpu cache这个概念不清楚,请先Google一下。 另外,本文主要针对像 C,C++ 这种产生机器码的语言的,对于像 Java,.Net 这样的字节码语言,这里所说的可能无效,至少我没研究过。 首先说说我所说的这些旧有的优化技巧从哪里来的。 原因很简单,如果你像我一样,多年只用 J2ME,或者 Flash 这样的技术开发,你是不太可能会关心处理器缓存的,而是用一些其它的性能技巧,这些技巧遇到处理器缓存问题,就失效了。 再如果你的CPU,汇编,优化知识像我一样仍停留在 80386 时代,你我掌握的优化技巧断然也是过时的。
本文主要讨论一些随机排列生成算法。从普通算法之道推演出实用的算法。这篇文章主要是一个闲文。如果您正在寻求一个理想的随机排列生成算法,直接阅读方法3。 另外请注意,这里所讨论的算法并不是新的。