挿入ソート《ソートアルゴリズム》

素朴なソートアルゴリズムメニュー【挿入ソート】

【挿入ソート】コード

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);
});
hogeちゃんの画像

解説どおり 実装しました。

コメント