Algoritmos de Ordenação

Em ciência da computação é um algoritmo que coloca os elementos de uma dada sequência em uma certa ordem -- em outras palavras, efetua suaordenação completa ou parcial. As ordens mais usadas são a numérica e a lexicográfica.

Existem várias razões para se ordenar uma sequência. Uma delas é a possibilidade se acessar seus dados de modo mais eficiente, mas nesta materias vamos estudar apenas os algoritmos ou métodos simples de ordenação.

Insertion sort

ou ordenação por inserção, é um simples algoritmo de ordenação, eficiente quando aplicado a um pequeno número de elementos. Em termos gerais, ele percorre um vetor de elementos da esquerda para a direita e à medida que avança vai deixando os elementos mais à esquerda ordenados. O algoritmo de inserção funciona da mesma maneira com que muitas pessoas ordenam cartas em um jogo de baralho como o pôquer.
FUNÇÃO INSERTION_SORT (A[], tamanho)
        VARIÁVEIS      
                i, ,j
                eleito
        PARA I <- 1="" a="" at="" eleito="" enquanto="" fa="" i-1="" i="" j="" tamanho="">=0) E (eleito < A[j])) FAÇA
                          A[j+1]:= A[j];
                          j:=j-1;
                FIM_ENQUANTO
                A[j+1] <- eleito="" fim="" fim_para="" pre="">

selection sort 

selection sort (do inglês, ordenação por seleção) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos.
INICIO
escreva("The SMARTSOFT CORPORATION APRESENT")
//declarar as variáveis:
Inteiro a[10] <- 0="" 15="" 18="" 1="" 21="" 30="" 4="" 50="" 7="" 8="" 9="" a="" at="" ate="" aux="" de="" i="" inteiro="" j="" menor="" o="" ordenar="" para="" passo="" se="" vetor:=""> a[j] então
            menor <- 0="" 1="" 9="" a="" at="" aux="" de="" ent="" escrever="" fim="" fimse="" i="" j="" menor="" o="" ordenado:="" para="" passo="" pr="" pre="" se="" vetor="" ximo="">

Bubble sort

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.
void bubble_sort(int vetor[], int tamanho) {
    int comparacoes = 0;
    int trocas = 0;
 
    for(int i=tamanho-1; i >= 1; i--) {
        for(int j=0; j < i ; j++) {
            comparacoes ++;
            if(vetor[j]>vetor[j+1]) {
                 aux = vetor[j];
                 vetor[j] = vetor[j+1];
                 vetor[j+1] = aux;
                 trocas++;
            }
        }
    }
}
Share on Google Plus

About Unknown

    Blogger Comment
    Facebook Comment

0 comentários:

Enviar um comentário