Ordenação de Arrays com método Bubble Sort em C#

Ordenação de Arrays com método Bubble Sort em C#

Existem várias técnicas que podem ser empregadas para colocar os elementos de um array em ordem (crescente ou alfabética). Por exemplo, em C#  podemos usar o método Array.Sort para ordenar o array, de forma simples e objetiva.

Porém, para fins didáticos, neste tutorial vou mostrar como implementar nosso próprio sistema de ordenação de elementos de um array, usando o método Bubble Sort em C#, e no final do artigo também mostrarei como usar o método Array.Sort para ordenar o conteúdo de um array.

O projeto

Vamos criar um novo projeto no Visual Studio e acrescentar dois botões e dois labels (podem ser listboxes, se você preferir). Daremos os seguintes nomes aos componentes:

  • Botão bntOrdenaArray – Botão que ao ser clicado, coloca o conteúdo do array e ordem e o exibe em um label ou listbox
  • Botão bntMostraArray – Botão que exibe o conteúdo do array criado antes de ser ordenado.
  • Label lblOriginal – Label que exibe o conteúdo do array antes da ordenação.
  • Label lblOrdenado – Label que mostra o conteúdo do array após a ordenação.

Código

A listagem a seguir traz o código completo da aplicação, para cada componente:

namespace bubblesort
{
 public partial class Form1 : Form
 {
   int[] x = { 2, 1, 8, 7, 5, 9, 15, 3, 6 };
   public Form1()
   {
     InitializeComponent();
   }
 // criando o método bubblesort
   public void bubblesort(int[] y)
   {
     for (int i = 1; i < y.Length; i++)
       for (int j = 0; j < y.Length - 1; j++)
          if (y[j] > y[j + 1])
            troca(y, j);
   }
 // algoritmo de troca de valores de variáveis:
   public void troca(int[] g, int primeiro)
   {
     int aux;
     aux = g[primeiro];
     g[primeiro] = g[primeiro + 1];
     g[primeiro + 1] = aux;
   }
   private void btnOrdenaArray_Click(object sender, EventArgs e) // Botão para ordenar o array
   {
     // Ordenando e exibindo o array:
     bubblesort(x);
     lblOrdenado.Text = "Itens do array ordenados:\n";
     for (int i = 0; i < x.Length; i++)
     {
        lblOrdenado.Text += " " + x[i];
     }
   }
   private void btnMostraArray_Click(object sender, EventArgs e) // Botão para mostrar conteúdo original do array
   {
     lblOriginal.Text = "Itens do array na ordem original:\n";
     for (int i = 0; i < x.Length; i++)
     {
       lblOriginal.Text += " " + x[i];
     }
   }
 }
}

A figura a seguir mostra nosso programa em execução, trazendo o array original e seu conteúdo ordenado com o método Bubble Sort:

Ordenar array em C# com método bubblesort

 

O método Array.Sort()

Para usar o método Array.Sort() basta passar o array contendo os itens a serem ordenados como parâmetro do método.  Por exemplo, você pode acrescentar mais um botão e um label na aplicação anterior, e usar o código a seguir para realizar a ordenação do conteúdo do array:

 private void btnArraySort_Click(object sender, EventArgs e)
 {
   Array.Sort(x);
   lblArraySort.Text = "Itens do array ordenados:\n";
   foreach (int item in x)
   {
     lblArraySort.Text += " " + item.ToString();
   }
 }

Muito mais simples não? Mas é claro que é muito importante saber criar seus próprios algoritmos para manipulação de estruturas de dados, por isso ensinamos neste tutorial a implementar seu próprio Bubble Sort. Mas na prática procure sempre utilizar clases e métodos já existentes, em ves de “reinventar a roda”.

É isso ai! Até a próxima!

Veja também: Ordenação de Arrays em C com o método Bubblesort

 

Sobre Fábio dos Reis (1212 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

1 Comentário em Ordenação de Arrays com método Bubble Sort em C#

  1. Ordenação

    Um matéria que ainda não vi no Youtube é Ordenação no Visual Studio, talvez seja bem complexo, dica para vídeo, pois não tem nenhum .

Escreva um comentário

Seu e-mail não será divulgado


*