C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で配列を降順にソートするプログラムの作成方法

C#では、ループと条件分岐を組み合わせることで、配列の要素を降順(大きい順)に並べ替えることができます。本記事では、基本的なソートアルゴリズムを用いて、整数型の配列を降順に並べ替えるプログラムを解説します。

手順1:配列を初期化する

まず、並べ替え対象となる配列を宣言し、初期値を設定します。

int[] myArr = new int[5] {98, 76, 99, 32, 77};

手順2:要素を比較して入れ替える

次に、配列の先頭の要素とそれ以降の要素を順番に比較します。より大きい要素が見つかった場合は値を入れ替えることで、最大の要素から順に決定していきます。これは「選択ソート」の考え方に基づいたシンプルな手法です。

if(myArr[i] < myArr[j]) {
    temp = myArr[i];
    myArr[i] = myArr[j];
    myArr[j] = temp;
}

ここで使用している変数 ij は、それぞれ以下のように初期化されます。

i = 0;
j = i + 1;

外側のループ変数 i が基準位置を示し、内側のループ変数 j がそれ以降の要素を順に走査します。myArr[i] よりも myArr[j] の方が大きければ、一時変数 temp を介して2つの値を交換します。

サンプルコード全体

以下のコードを実行すると、配列の要素が降順にソートされます。

using System;
public class Demo {
    public static void Main() {
        int[] myArr = new int[5] {98, 76, 99, 32, 77};
        int i, j, temp;
        Console.Write("Elements: \n");
        for(i=0;i<5;i++) {
            Console.Write("{0} ",myArr[i]);
        }
        for(i=0; i<5; i++) {
            for(j=i+1; j<5; j++) {
                if(myArr[i] < myArr[j]) {
                    temp = myArr[i];
                    myArr[i] = myArr[j];
                    myArr[j] = temp;
                }
            }
        }
        Console.Write("\nDescending order:\n");
        for(i=0; i<5; i++) {
            Console.Write("{0} ", myArr[i]);
        }
        Console.Write("\n\n");
    }
}

実行結果

Elements:
98 76 99 32 77
Descending order:
99 98 77 76 32

このように、元の配列 {98, 76, 99, 32, 77} が降順の {99, 98, 77, 76, 32} に並べ替えられました。

補足:Array.Sortメソッドを使う方法

実務では、標準ライブラリの Array.Sort() メソッドを使って昇順ソートを行い、その後に Array.Reverse() で反転させる方法も一般的です。こちらの方が簡潔でパフォーマンスにも優れています。

Array.Sort(myArr);   // 昇順にソート
Array.Reverse(myArr); // 反転して降順にする

ソートアルゴリズムの仕組みを学びたい場合は自前の実装が有効ですが、実際の開発では標準メソッドを活用することをおすすめします。

  1. 【Python入門】リストの要素を降順に並べ替える方法をわかりやすく解説

    Pythonでは、リスト(配列)の要素を降順に並べ替えたい場合、sort()メソッドを使い、引数reverseにTrueを指定するだけで簡単に実現できます。 サンプルコード my_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(元のリスト:) print(my_list) my_list.sort(reverse = True) print(降順にソートした後のリスト:) print(my_list) 実行結果 元のリスト: [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] 降順にソートした後のリスト: [89

  2. 【Python入門】リスト(配列)の要素を昇順に並べ替える方法|sortメソッドの使い方

    Pythonでリスト(配列)の要素を昇順に並べ替えたい場合は、sortメソッドを使います。sortメソッドはデフォルトで昇順にソートしてくれるため、引数を指定しなくても簡単に並べ替えが可能です。また、降順に並べ替えたい場合は、reverseパラメータにTrueを指定するだけで対応できます。以下に具体的な使用例を示します。サンプルコードmy_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(The list is :) print(my_list) my_list.sort() print(The list after sorting is