Test Code for Developing Editor (quick sort)

by 9re
♥0 | Line 52 | Modified 2010-01-12 18:24:59 | MIT License
play

ActionScript3 source code

/**
 * Copyright 9re ( http://wonderfl.net/user/9re )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/jd97
 */

package {
	import flash.text.TextField;
	import flash.display.Bitmap;
	import flash.display.Graphics;
    import flash.display.Sprite;
    
    public class FlashTest extends Sprite {
        public function FlashTest() {
            // write as3 code here..
            var arr:Array = [];
            for (var i:int = 0; i < 10; ++i)
            		arr[i] = Math.random();
            	
            		
            	var tf:TextField = new TextField;
            	tf.wordWrap = true;
            	tf.multiline = true;
            	
            	tf.appendText("original:\n\n" + arr + "\n");
            
            
            quick_sort(arr);
            
            	tf.appendText("\n\nsorted:\n\n" + arr + "\n");
            
            tf.width = 465;
            tf.height = tf.textHeight + 4;
            
            
            addChild(tf);
        }
        
        private function quick_sort(array:Array):void {
        		var len:int = array.length;
        		trace(array);
        		if (len < 2) return;
        		
        		var min:Array = [], max:Array = [];
        		var numMin:int = 0, numMax:int = 0, i:int = 0;
        		var firstItem:Number = array[0], item:Number;
        		
        		while (++i < len) {
        			item = array[i];
        			if (item < firstItem) {
        				min[numMin++] = item;
        			} else {
        				max[numMax++] = item;
        			}
        		}
        		
        		min.length = numMin;
        		max.length = numMax;
        		
        		quick_sort(min);
        		quick_sort(max);
        		
        		i = 0;
        		while (i < numMin) {
        			array[i] = min[i];
        			++i;
        		}
        		
        		array[i++] = firstItem;
        		
        		numMax = 0;
        		while (i < len) {
        			array[i++] = max[numMax++];
        		}
        }
    }
}