Bubble sort

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Esta página ou secção não cita fontes confiáveis e independentes, o que compromete sua credibilidade (desde Agosto de 2013). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
Bubble sort
classe Algoritmo de ordenação
estrutura de dados Array, Listas ligadas
complexidade pior caso
complexidade caso médio
complexidade melhor caso
complexidade de espaços pior caso auxiliar
Algoritmos
Bubble sort animation.gif
Bubble sort cor editada
Bubble sort cor editada

O bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.

No melhor caso, o algoritmo executa operações relevantes, onde n representa o número de elementos do vector. No pior caso, são feitas operações. A complexidade desse algoritmo é de Ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.

Fluxograma[editar | editar código-fonte]

Bubblesort.png

Implementação[editar | editar código-fonte]

Exemplo em Linguagem C:

#include <stdio.h>
int main(void)
{
    int vetor[10] = {10,9,8,7,6,5,4,3,2,1};
    int tamanho = 10;
    int aux;
    for(int i=tamanho-1; i >= 1; i--) 
    {  
        for( int j=0; j < i ; j++) 
        {
            if(vetor[j]>vetor[j+1]) 
            {
                aux = vetor[j];
                vetor[j] = vetor[j+1];
                vetor[j+1] = aux;
            }
        }
    }

    for( int r = 0; r < 10; ++r)
    {
        printf("%d\n",vetor[r]);
    }
}

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]