要素をランダムに並べ替えるFisher-Yatesというアルゴリズムを可視化してみた。 下のウィンドウをマウスクリックすると並び替えの様子がアニメーションされます。 後ろから走査していって、自分より前のどれかと交換していく訳ですね。 計算量はO(n)です。 package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import caurina.transitions.Tweener; [SWF(width="400", height="200",backgroundColor="0xffffff")] public class FisherYates2 extends Sprite{ private var balls:Array = []; priv