// forked from Fumio's Adding elements to an Array package { import flash.display.Sprite; import flash.utils.getTimer; import flash.text.TextField; import flash.text.TextFieldAutoSize; [SWF(width = "240",height = "180")] public class SettingOneOutofAll extends Sprite { private const MAX_NUMBER:int = 10000; private var i:uint; private var j:uint; private var started:int; private var my_txt:TextField = new TextField(); private var label_txt:TextField = new TextField(); public function SettingOneOutofAll() { // Creating a TextField for display createTextField(); // Creating a Array for testing var _array:Array = createArray(MAX_NUMBER); // Starting test findOneAndSet(_array); resetAllAndSetOne(_array); } private function findOneAndSet(_array:Array):void { started = getTimer(); var nLength:uint = _array.length; var my_array:Array = new Array(nLength); for (i = 0; i < nLength; i++) { var n:uint = _array[i]; for (j = 0; j < nLength; j++) { if (_array[j] == n) { my_array[j] = 1; } else { my_array[j] = 0; } } } xTrace(getTimer() - started); } private function resetAllAndSetOne(_array:Array):void { started = getTimer(); var nLength:uint = _array.length; var my_array:Array = new Array(nLength); for (i = 0; i < nLength; i++) { for (j = 0; j < nLength; j++) { my_array[j] = 0; } my_array[i] = 1; } xTrace(getTimer() - started); } private function createTextField():void { addChild(my_txt); addChild(label_txt); my_txt.autoSize = TextFieldAutoSize.LEFT; my_txt.x = 100; label_txt.autoSize = TextFieldAutoSize.LEFT; label_txt.text = "find one and set it:\nreset all and set one:"; } public function createArray(nCount:uint):Array { var i:uint = 0; var _array:Array = []; while (_array.push(i++) < nCount); return _array; } private function xTrace(n:int):void { my_txt.appendText(String(n) + "\n"); } } } Setting one and resetting the others