この記事は自分用の備忘録です。
リバースアルゴリズムって何?
配列の要素を逆順に並び替える処理のこと
配列の最初の要素と最後の要素を交換し
中央に向かって順番に入れ替えることで
配列の要素を逆順に並び替える
サンプルデータ
const array: number[] = [1, 2, 3, 4, 5];
// この配列を [5, 4, 3, 2, 1] に反転する
やってみる
reverse.ts
function reverseArray(array: number[]): number[] {
const n = array.length; // 配列の要素数
for (let left = 1; left <= Math.floor(n / 2); left++) {
// rightを計算(配列の右端の要素を指す位置)
const right = n - left;
// 一時変数 tmp に右の要素を保存
const tmp = array[right];
// 右の要素に左の要素を代入
array[right] = array[left - 1];
// 左の要素に tmp(右の元の値)を代入
array[left - 1] = tmp;
}
return array;
}
// 実行
const array: number[] = [1, 2, 3, 4, 5];
console.log(reverseArray(array)); // [5, 4, 3, 2, 1]
実行したらちゃんとできていた
感想
基本情報技術者試験の擬似言語の問題だと配列のindexが1から始まる設定だった
引っかからないように気をつけよう
参考