【C#で初心者向けに解説】プログラミングでのソート処理とは?

【C#で初心者向けに解説】プログラミングでのソート処理とは?

ソート処理って何?

このようにソート処理に関して分からない方いると思います。

そのような方のために、

  • ソート処理の概要
  • ソート処理の実装例

を解説します。

このような方におすすめ

  • データを並び替えたいけどやり方が分からない
  • ソートの意味がよくわからない
  • 現場で使いたい
目次

ソート処理とは?

ソート処理とは、

あるいくつかのデータを並び替える(昇順または降順)

つまり見やすく分かりやすくするためのものだと思ってください。

ソートには様々な種類がありますが今回は一番簡単な方法で実装していきます。

C#でのソート処理の実装

では実際にC#で実装していきます。
以下の条件のものを昇順にソートします。

例題:3,4,1,5,2の順番で格納されている配列を小さい順に並び替える

実装方法は2つ紹介します。

        static void Main(string[] args)
        {
            int[] numArray = { 3, 4, 1, 5, 2 };

            // 並び替え
            /* --------------------------------------------------------- */
            for (int index1 = 0; index1 < numArray.Length - 1; index1++)
            {
                if (numArray[0] > numArray[index1 + 1])
                {
                    // 値を入れ替える
                    int work = numArray[0];
                    numArray[0] = numArray[index1 + 1];
                    numArray[index1 + 1] = work;
                }
            }

            for (int index1 = 1; index1 < numArray.Length - 1; index1++)
            {
                if (numArray[1] > numArray[index1 + 1])
                {
                    // 値を入れ替える
                    int work = numArray[1];
                    numArray[1] = numArray[index1 + 1];
                    numArray[index1 + 1] = work;
                }
            }

            for (int index1 = 2; index1 < numArray.Length - 1; index1++)
            {
                if (numArray[2] > numArray[index1 + 1])
                {
                    // 値を入れ替える
                    int work = numArray[2];
                    numArray[2] = numArray[index1 + 1];
                    numArray[index1 + 1] = work;
                }
            }

            for (int index1 = 3; index1 < numArray.Length - 1; index1++)
            {
                if (numArray[3] > numArray[index1 + 1])
                {
                    // 値を入れ替える
                    int work = numArray[3];
                    numArray[3] = numArray[index1 + 1];
                    numArray[index1 + 1] = work;
                }
            }

            for (int index1 = 4; index1 < numArray.Length - 1; index1++)
            {
                if (numArray[4] > numArray[index1 + 1])
                {
                    // 値を入れ替える
                    int work = numArray[4];
                    numArray[4] = numArray[index1 + 1];
                    numArray[index1 + 1] = work;
                }
            }
            /* --------------------------------------------------------- */

            for (int i = 0; i < numArray.Length; i++)
            {
                Console.WriteLine(numArray[i]);
            }
        }
結果

こちらはあまりおすすめしない方法です。

配列をひとつづつ取り出してひとつづつ比較しているやり方です。

コードが多くて、なおかつ配列の要素が増えれば増えた分だけ処理も増えます。

この処理よりもはるかに短く楽な方法があります。

        static void Main(string[] args)
        {
            int[] numArray = { 3, 4, 1, 5, 2 };

            // 並び替え
            /* --------------------------------------------------------- */
            Array.Sort(numArray);
            /* --------------------------------------------------------- */

            for (int i = 0; i < numArray.Length; i++)
            {
                Console.WriteLine(numArray[i]);
            }
        }
結果

こちらの方が圧倒的にコード量も少ないですし、配列の要素が増えても処理を変える必要はありません

まとめ【C#でのソート処理】

以下本記事のまとめとなります。

  • ソート処理は並び替えのこと
  • 並び替えようの関数があるのでそれを使うと便利

ソートはアプリを作るうえでとても便利な機能です。

ソートの概念とアルゴリズムが分かればもっとレベルアップができると思います。

私(@detectivepgmer)は【初心者向け】の記事を書いていますのでこれからも参考にしていただけるとありがたいです。

最後まで読んでいただきありがとうございました。

よかったらシェアしてね!

この記事を書いた人

・文系大卒からプログラマーとしてIT企業に就職!
・就活ではIT企業20社受けて19社不採用。残りの1つから内定をいただきなんとかエンジニアデビュー!
・現在はIT企業退職しフリーランスエンジニアとして活動中。
・未経験からエンジニアになる難しさを知っているので、これからエンジニアを目指す方のために未経験からエンジニアになるための方法を発信中

コメント

コメントする

目次
閉じる