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:
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
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 .