素朴なソートアルゴリズムメニュー【挿入ソート】
【挿入ソート】コード
reader.on('close', () => {
const insertion_sort = (A, N) => {
for (let i = 1; i < N; i++) {
const x = A[i]; // A[i] の値をコピー
let j = i - 1; // A[i] の左隣から探索
while (A[j] > x && j >= 0) { // A[j] が x より大きければ
A[j + 1] = A[j]; // A[j]を右隣にスライド
// [A[j],A[j + 1]] = [x, A[j]];
j--;
}
A[j + 1] = x; // A[j + 1] を x (コピーしておいた値)で上書き
console.log(...A);
}
};
const n = Number(lines[0]);
const arr = lines[1].split(' ').map(Number);
insertion_sort(arr, n);
});
解説どおり 実装しました。
コメント