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