terça-feira, 4 de junho de 2013

[Programação em C] Implementação do Selection Sort

Olá pessoal, nesse post iremos ver uma implementação do método de ordenação chamado Selection Sort.

Esse método primeiro acha o menor elemento do vetor e troca com o elemento da primeiro posição. Acha o segundo menor elemento e troca com o elemento da segunda posição e assim por diante até o vetor ficar ordenado.

Selection Sort trabalha muito bem para pequenas entradas, veja como é simples:

// www.GeeksBR.com
#include <stdio.h>
#define N 5

void selection_sort(int vet[])
{
    int i, j, min, aux;

    for(i = 0; i < N; i++)
    {
        min = i;
        for(j = i + 1; j < N; j++)
        {
            if(vet[j] < vet[min])
                min = j;
            aux = vet[min];
            vet[min] = vet[i];
            vet[i] = aux;
        }
    }
}

int main(int argc, char *argv[])
{
    int i, vet[N];

    for(i = 0; i < N; i++)
        scanf("%d", &vet[i]);
    selection_sort(vet);
    printf("\n");
    for(i = 0; i < N; i++)
        printf("%d ", vet[i]);
    printf("\n");
    return 0;
}

Na linha 5 temos o começo da implementação da função selection_sort() que irá ordenar os elementos do vetor de acordo com o método Selection Sort.

O método Selection Sort trabalha selecionando o menor elemento remanescente, daí o nome "Selection Sort".

Vídeo demonstrando como funciona Selection Sort:


Clique aqui para fazer download do código


Nenhum comentário: