2016-01-20 74 views
-2

我有一個隨機元素的數組。數組中有10個元素。從最小到最大排序數組

如何訂購第二個數組中的數字,從最小到最大。

在第二陣列examle陣列(43,2,23,45 ...)必須是(2,23,43,45 ...)

碼c#

int[] mass = new int[10]; 
int[] mass2 = new int[10]; 

void shemtxvevitimasivi() 
{ 
    label1.Text = ""; 
    Random r = new Random(); 
    for (int i=0; i<mass.Length; i++) 
    { 
     mass[i] = r.Next(0, 100); 
    } 
    for (int k=0; k<mass.Length; k++) 
    { 
     label1.Text+=mass[k].ToString()+" | "; 
    } 
} 

void minim() 
{ 
    for (int t = 0; t < mass.Length; t++) 
    { 
     label2.Text = mass.Min().ToString() + " | "; 
    } 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    minim(); 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    shemtxvevitimasivi(); 
} 
+0

第一陣列的複製內容到一個新的數組,然後使用排序['的Array.Sort()']新陣列(https://msdn.microsoft。 com/en-us/library/6tf1f0bc%28v = vs.110%29.aspx) –

+0

看一看:http://www.csharp-examples.net/sort-array/ – NoChance

+0

int [] mass2 =( INT [])mass.Clone(); Array.Sort(mass2);' –

回答

3

可以只使用.Sort

int[] mass2 = { 4, 7, 2, 0 }; 
Array.Sort(mass2); 

foreach (int value in values) 
{ 
    Console.Write(value); 
    Console.Write(' '); 
} 

// outputs 0 2 4 7 
1

你可以用戶可以自己實現一些排序算法,或者只是簡單地使用:

Array.Sort(yourArray); 
+0

這會修改原始數組,並不會產生第二個數組。 –

+0

總是可以將原始數組複製到一個新數組中,然後對其進行排序,這個問題含糊其詞,因此我無法準確理解他們需要什麼。 – James

3

可以經由LINQ的創建第二陣列作爲第一個的(排序)拷貝

int[] mass = new int[10]; 
    ... 

    int[] mass2 = mass 
    .OrderBy(x => x) 
    .ToArray(); 
1
int[] values = { 43, 2, 23, 45 }; 
int[] ordered = values.OrderBy(x => x).ToArray(); 

可以使用OrderBy訂購以升序的元素。如果你想這樣做(順序降序),那麼你可以使用OrderByDescending