sort()の速度
forked from for, *, /, >> (diff: 41)
ActionScript3 source code
/**
* Copyright keno42 ( http://wonderfl.net/user/keno42 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/TVpr
*/
// forked from keno42's for, *, /, >>
package {
import flash.display.Sprite;
import flash.text.*;
import flash.utils.*;
public class FlashTest extends Sprite {
private static const COUNT:int = 1;
private var tf:TextField = new TextField();
public function FlashTest() {
// write as3 code here..
addChild(tf);
tf.autoSize = "left";
testSort(100);
testSort(1000);
testSort(10000);
testSort(100000);
testSort2(100);
testSort2(1000);
testSort2(10000);
testSort2(100000);
}
private function testSort(n:Number):void
{
var i:int, j:Number, arr:Array;
arr = [];
http://keno.serio.jp/ :) 元ネタ: http://twitter.com/beinteractive/status/4049711241
for( i = 0; i < n; i++ ){
arr.push(i);
}
var time:uint = getTimer();
for( i=0; i < COUNT; i++ ){
arr.sort();
}
tf.appendText("ソート済みの配列にsort()(配列長"+n+"): " + String(getTimer()-time) + "ms, NlogN比:" + (getTimer()-time)/(n*Math.log(n)) + "\n");
}
private function testSort2(n:Number):void
{
var i:int, j:Number, arr:Array;
arr = [];
for( i = 0; i < n; i++ ){
arr.push(n-i);
}
var time:uint = getTimer();
for( i=0; i < COUNT; i++ ){
arr.sort();
}
tf.appendText("逆順ソート済みの配列にsort()(配列長"+n+"): " + String(getTimer()-time) + "ms, NlogN比:" + (getTimer()-time)/(n*Math.log(n)) + "\n");
}
}
}