Created
February 22, 2015 07:33
-
-
Save timakin/1b35dd21d1b401b61ca7 to your computer and use it in GitHub Desktop.
文系が学ぶコンピューターサイエンス╭( ・ㅂ・)و ̑̑:第7回【2分挿入ソート】 ref: http://qiita.com/timakin/items/211bf914d7a137061d2f
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 2分挿入ソート | |
binaryInsertionSort: function(data) { | |
var left, right, mid, temp; | |
for (var sorted = 1; sorted < data.length; sorted++) { | |
var insert = data[sorted]; | |
// ここからバイナリサーチ | |
// どこに値を挿入するべきかを探す | |
left = 0; | |
right = sorted; | |
while (left < right) { | |
// Math.floor()使わないと、小数をキーに入れる羽目になる。 | |
mid = Math.floor((left + right) / 2); | |
if (data[mid] > insert) { | |
right = mid; | |
} else { | |
left = mid + 1; | |
} | |
} | |
var i = left; | |
while(i <= sorted) { | |
temp = data[i]; | |
data[i] = insert; | |
insert = temp; | |
i++; | |
} | |
} | |
return data; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment