配列内のデータをソートする(シェルソート)

説明

ソート方法の1つにシェルソートがあります。間隔(h)ごとに挿入法を行います。間隔(h)を減らし挿入法を繰り返すことでソートが行われます。

サンプルプログラム

var data = new Array(-30,10,5,-99,44,65,31,-78);
function sortData(data) {
for (var h=data.length/2; h>0; h/=2) {
for (var i=h; i<data.length; i++) {
var n = data[i];
var j = i;
while ((j >= h) && (n < data[j-h])) {
data[j] = data[j-h];
j -= h;
}
data[j] = n;
}
}
}
document.write("ソート前:"+data.toString()+"<br>");
sortData(data);
document.write("ソート後:"+data.toString()+"<br>");
サンプルを実行
[戻る]