[Java]配列(array)を逆順にソートするには?

Java

どうも、ちょげ(@chogetarou)です。

配列(array)を逆順にソートする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(array)を逆順にソートするには、for文を使います。

まず、for文を配列の半分の長さでループします。

そして、for文のループ処理で、配列の反対側の要素同士を入れ替えます。

//arr=対象の配列
for(int i = 0; i < arr.length / 2; i++)
{
    int temp = arr[i];
    arr[i] = arr[arr.length - i - 1];
    arr[arr.length - i - 1] = temp;
}

上記のfor文は、ループした配列(array)を逆順にソートします。

もし、逆順にソートした新しい配列を取得したい場合は、まず、逆順用の配列を用意します。

次に、元の配列を長さでforループします。

そして、元の配列の後ろの要素から逆順用の配列に追加します。

//逆順にソートした新しい配列を生成する方法
int[] reverse = new int[5]; //逆順にソートした結果を格納する配列

for (int i = 0; i < arr.length; i++) {
    reverse[i] = arr[arr.length -1 - i];
}

使用例

public class Main {
    public static void main(String[] args) throws Exception {
        int[] nums = {1, 2, 3, 4, 5};
        
        for(int i = 0; i < nums.length / 2; i++)
        {
            int temp = nums[i];
            nums[i] = nums[nums.length - i - 1];
            nums[nums.length - i - 1] = temp;
        }
        
        for (int i: nums) {
            System.out.println(i);   
        }
    }
}
出力:
5
4
3
2
1

コメント

タイトルとURLをコピーしました