2016-08-14 14 views
-2

現在、クラスとオブジェクトを使用して配列をソートする方法と、Array.Sort();ではなくmain関数でもこの配列を使用する方法を探しています。 、私の代わりにのArray.sort(ARR)機能も参考になります2つの配列を結合してソートする方法

 int[] arr1 = new int[5] { 2, 5, 1, 7, 4 };//1st array declared 
     int[] arr2 = new int[5] { 10, 16, 13, 17, 15 }; 
     int[] arr3 = new int[10]; 
     int k = 0; 
     Console.WriteLine("First Array: "); 
     for(int i=0;i<arr1.Length;i++) 
     { 
      Console.Write(" "+arr1[i]+" "); 
     } 

     Console.WriteLine("\nSecond Array: "); 
     for(int x=0;x<arr2.Length;x++) 
     { 
      Console.Write(" " + arr2[x] + " "); 
     } 
     Console.WriteLine(); 

     Console.WriteLine("--------------MERGED ARRAY-------------"); 
     for (int i = 0; i < arr3.Length;i++) 
     { 
      if(i<arr1.Length) 
      { 

       arr3[i] = arr1[i];//Array 1 has been Stored in a new Array 

      } 
      else if (i >= arr1.Length) 
      { 

       arr3[i] = arr2[k]; //Array 2 has been Stored in a new Array     
       k++; 
      } 
       Console.Write(" "+ arr3[i]+" "); 


     } 
     Console.WriteLine(); 
     Console.WriteLine("\n\n--------------------After Sorting---------------------"); 
     Array.Sort(arr3);//Sorting The merged Array 
     foreach (int mainArr in arr3) 
     { 
      Console.Write(mainArr); 
      Console.Write(" "); 
     } 
     Console.ReadKey(); 

    } 

希望の使用で自分の作成したソート機能を使用します。あなたが必要以上にあまりにも多くのコードを書いている

+1

なぜあなたは自分のソート機能を使いたいのですか? – galenus

+1

あなたの質問は何ですか? – Hulk

+0

[this](https://msdn.microsoft.com/en-us/library/aw9s5t8f(v = vs.110).aspx)を見ると、おそらく必要なものがすべて提供されます。つまり、配列に入れたクラスの[IComparer](https://msdn.microsoft.com/en-us/library/system.collections.icomparer(v = vs.110).aspx)インターフェイスを実装します。 – galenus

答えて

0

、あなたは、単にLINQの使用することができます。

int[] arr1 = new int[5] { 2, 5, 1, 7, 4 }; 
int[] arr2 = new int[5] { 10, 16, 13, 17, 15 }; 
int[] arr3 = arr1.Concat(arr2).OrderBy(x => x).ToArray(); 
+0

実際には、ライブラリ関数を使用する代わりにすべてのロジックを書くことが自由にできます。簡略化されるかもしれませんが、これは私が探しているものではありません。 –

+1

@HamdanKaiser何をしようとしていますか?予想される出力は何ですか?具体的にしてください。 – user3185569

+0

その行int [] arr3 = arr1.Concat(arr2).OrderBy(x => x).ToArray(); は私に正確な出力を与えていない、私はあなたが見ていることをお勧めします –

0

をソートアルゴリズムがたくさんあり、私はC#(左に変換しやすいだろう擬似コードを書きましたあなたのいくつかの仕事)の非常に単純なアルゴリズムのために、それは基本的に最小の要素を探し、左にそれを置く:

declare min = 0, i, k 

for i=0 to array length 

    for k=i+1 to array length 

    if array[k] < array[i] then 
    swap array[i] , array[k] 


-------------------- 

swap a,b: 

declare temp = a 

a=b 

b=temp 

幸運を!

関連する問題