Olá boa noite, estou com uma certa dificuldade em mostrar em ordem crescente um vetor de 20 posições com números negativos e positivos, tentei utilizar um array para organizar, porém na hora de mostrar o resultado, não é bem oque eu quero…
segue o código que fiz:
class Program
{
static void Main(string[] args)
{
int[] vetor1 = new int[20];
Random x = new Random();
for (int i = 0; i < 19; i++)
{
vetor1[i] = x.Next(-10, 50);
Array.Sort(vetor1);
Console.WriteLine(" " + vetor1[i]);
}
Console.ReadKey();
}
}
O método Array.Sort é para ordenar o vetor certo?!
Então você deve utilizá-lo quando o vetor já estiver completo, aí sim você organiza ele! Uma observação, se você que preencher todo o array o correto é i<20
//dica: em vez de colocar 20, use um metodo que retorne o tamanho do array!
for (int i = 0; i < 20; i++){
vetor1[i] = x.Next(-10, 50);
}
Array.Sort(vetor1);
// depois você percorre o array e mostre o resultado
for (int i = 0; i < 20; i++){
Console.WriteLine(" " + vetor1[i]);
}
Se você que implementar um método para ordenar uma lista. Você pode pesquisar por Selection sort
Que é um dos mais simples. Mas também tem outros é só pesquisar por algoritmo de ordenação, tem vários.
Mas a maioria das linguagem já faz isso por você. Então é mais para fins de conhecimento mesmo.
Esse é um exemplo em Java de Selection sort. Acredito que tem como otimizar e tal…
Faz a ordenação em ordem crescente.
public void selectionSort(int[] vetor){
int n = vetor.length();
int min = 0;
for(int i = 0; i < (n-1); i++){
min = i;
//Encontra o menor elemento
for(int j = (i+1); j < n; j++){
if(vetor[j] < vetor[min]){
min = j;
}
}
//realiza a troca, colocando o menor elemento, na posição correta
if(vetor[i] != vetor[min])){
int aux = vetor[i];
vetor[i] = vetor[min];
vetor[min] = aux;
}
}
}