ブログ

割とコンピュータよりの情報をお届けします。

2018年12月28日

C#で配列のソート

C#で配列のソートをする方法としてArray.Sortがある.

ただし,引数に与えた配列は順番が破壊されてしまう.

通常は,以下のようにするが,これだと元のtestは書き換えられる.

            Int32[] test = new Int32[5];
            
            for (int i = 0; i < test.Length; i++)
            {
                test[i] = test.Length - i;
            }
            Array.Sort(test);

もとの配列の中でのインデックスを記録しておきたい場合,test1にインデックスを記録しておき,Array.Sortに二つ配列を渡してやると,test1はソート前の配列での順番を表すことになる.

            Int32[] test1 = new Int32[5];
            Int32[] test2 = new Int32[5];
            
            Random rand = new Random(100);
            for (int i = 0; i < test1.Length; i++)
            {
                test1[i] = i;
                test2[i] = rand.Next();
            }
            Array.Sort(test2, test1);
 

≫ 続きを読む

2018/12/28 コンピュータ   TakeMe