BogosortをJavaScriptで実装してみた
Jan 31, 2011
暇でWikipedia見てたらボゴソートとかいうのを見つけた。JavaScriptでの実装例があまりないようだったので、どうせだからと実装してみることにした。
ちなみに、ボゴソートとは「要素をシャッフル→ソートされてたら処理終了、されてなければまたシャッフル」を繰り返す、非常に効率の悪いアルゴリズムである。
function isSorted(aArray){
for(var i=0,l=aArray.length-1;i<l;i++){
if(! (aArray[i] <= aArray[i+1])) return false;
}
return true;
}
function shuffle(aArray){
return aArray.sort(function(){
return Math.random()*100 <= 50;
});
}
function bogoSort(aArray){
while(!isSorted(aArray)){
shuffle(aArray);
}
}
追記。sortでシャッフルすると偏るらしいです。
IEのDOMがおかしい
Jan 26, 2010
導入したie6-upgrade-warningが実はうまく動いていなかったので、原因を探っていたら、IEのバグらしきものに遭遇した。
具体的には、以下のような感じ。
var input = document.createElement('input');
input.id = "test_i_1";
input.type = "checkbox";
document.body.appendChild(input); //きちんとチェックボックスが追加される
var input = document.createElement('input');
input.id = "test_i_2";
document.body.appendChild(input);
var i = document.getElementById('test_i_2');
i.type = "checkbox"; //エラーがでる
なぜか、getElementByIdしたやつだとDOMがうまく動かないみたい。ちなみに、i.setAttribute("type", "checkbox")でも
結果は同じだった。
やはりIEのDOMはよく分からん...
Posted at 18:30
JavaScript
| Permanent Link
| Comments/Trackbacks ()
Tagged as: development, JavaScript, ie
Tagged as: development, JavaScript, ie