3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ぬいぐるみをもらうのだAdvent Calendar 2024

Day 7

【基本情報】独学マラソン リバースアルゴリズム Day 31

Posted at

この記事は自分用の備忘録です。

リバースアルゴリズムって何?

配列の要素を逆順に並び替える処理のこと

配列の最初の要素と最後の要素を交換し
中央に向かって順番に入れ替えることで
配列の要素を逆順に並び替える

サンプルデータ

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]

実行したらちゃんとできていた

スクリーンショット 2024-12-07 23.06.45.png

感想

基本情報技術者試験の擬似言語の問題だと配列のindexが1から始まる設定だった
引っかからないように気をつけよう

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?