Bubblesort
Alex Silva
Um algoritmo de ordenação
Um dos algoritmos mais simples que existem, porem ele é o mais custoso dependendo do tamanho do vetor a ser ordenado.
como ele funciona
1-Percorra o vetor inteiro comparando elementos adjacentes (dois a dois).
2-Troque as posições dos elementos se eles estiverem fora de ordem.
3-Repita os dois passos acima com os primeiros n-1 itens,
depois com os primeiros n-2 itens, até que reste apenas um item.
O método ilustrado
As chaves em vermelho foram empurradas para o fim do vetor a cada passada : bolhas
método bolha
como você pode melhorar esse método?
Agora tente melhorar !!
Dica:Termina execução quando nenhuma troca é realizada após uma passada pelo vetor.
Mais um exemplo do algoritmo Bubble Sort
static void Main(string[] args)
{
int[] numbers = { 45, 81, 29, 66, 03, 52, 51, 55, 74 };
Console.WriteLine("Example Bubble Sort");
bubbleSort(numbers, numbers.Length); // length é o comprimento, neste caso comprimento do vetor numbers.
for (int i = 0; i < numbers.Length; i++)
Console.WriteLine(numbers[i]);
Console.ReadLine();
}
static void bubbleSort(int[] arr, int length)
{
int repos = 0;
/*Irá percorrer o vetor, comparando cada elemento do vetor com o elemento
* imediatamente seguinte (arr[j] = arr[j + 1];)
* O numero maximo de execuções do trecho do algoritmo
* p/ que o vetor fique ordenado é de N - 1, onde N é o numero de vezes.*/
// i determina o número de etapas para a ordenação
for (int i = 0; i < length - 1; i++)
{
// j determina o numero de comparações em cada etapa e os indices a serem
//pesquisados para a comparação.
for (int j = 0; j < length - (i + 1); j++)
{
if (arr[j] > arr[j + 1])
{
repos = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = repos;
}
}
}
}
Comentários