OBS: Leia a minha aula completa de Arrays em C# com exemplos simples se você ainda não domina muito bem este assunto.
Para ordenar um vetor, podemos simplesmente usar um Array.Sort()
e para ordenar em ordem decrescente podemos usar um Array.Reverse()
. Podemos também ordenar de forma aleatória com o auxílio da classe Random()
Vamos para alguns exemplos prático;
Ordenar um Array em C# em Ordem Crescente
Exemplo: Crie uma aplicação que leia 10 números e ordene-os em ordem crescente, informando qual é o maior e qual é o menor número informado pelo usuário.
using System;
public class Program
{
public static void Main()
{
int[] numeros = new int[10];
for (int p=0; p<numeros.Length; p++)
{
Console.Write("Digite um número: ");
numeros[p] = Convert.ToInt32(Console.ReadLine());
}
Array.Sort(numeros);
Console.Write("\n\n");
foreach (int p in numeros) Console.WriteLine(p);
}
}
Eis o resultado;
Ordenar um Array em C# em Ordem Decrescente
Exemplo: Crie uma aplicação que leia 10 números e ordene-os em ordem decrescente informando quantos números são primos.
int[] numeros = new int[10];
for (int p=0; p<numeros.Length; p++)
{
Console.Write("Digite um número: ");
numeros[p] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("\n\n");
Array.Reverse(numeros);
foreach (int p in numeros)
{
for (int i=2; i<=p; i++)
{
if (p % i == 0 && i != p)
{
Console.WriteLine(p); // não é primo
break;
}
if (p % i == 0 && i == p)
{
Console.WriteLine(p + " é primo");
break;
}
}
}
Resultado:
Ordenar um Array em C# em Ordem Aleatória
Exemplo: Uma turma escolar com 15 estudantes precisam ser organizados em grupos 5 grupos diferentes para realizarem uma pesquisa escolar. Para evitar brigas o Professor te pediu para desenvolver uma pequena aplicação que irá separar o estudantes de forma aleatória. Escreva a aplicação.
using System;
public class Program
{
public static void Main()
{
string[] estudantes = new string[] {
"Anderson", "Castro", "Denise",
"Karla", "Katia", "Lazaro",
"Lucas", "Luciana", "Michel",
"Norma", "Priscila", "Rodrigo",
"Sergio", "Stenio", "Toninho" };
// Para ordenar de forma aleatória precisamos de uma variável auxiliar.
Random sorteio = new Random();
for (int i = 0; i < estudantes.Length - 1; i++)
{
int j = sorteio.Next(i, estudantes.Length);
var temp = estudantes[i];
estudantes[i] = estudantes[j];
estudantes[j] = temp;
}
int x = 0, grupo = 1;
foreach (string p in estudantes)
{
if (x % 3 == 0)
{
Console.WriteLine("\n\nGrupo " + grupo + ":");
grupo++;
}
Console.WriteLine(" > " + p);
x++;
}
}
}
Resultado: