quarta-feira, 19 de dezembro de 2012

[Programação] Métodos de Classificação - Insertion Sort


Olá pessoal, para compensar dias sem postar hoje iremos abordar sobre os principais métodos de classificação existentes para algoritmos esses métodos tornarão possível classificar objetos salvos na memória, sendo desde arrays até listas mais complexas. O objetivo desses métodos é facilitar a localização entre esses dados não havendo necessidades de montá-los novamente na memória, gastando assim menos armazenamento na memória ao executar diversas tarefas de trabalho com os dados.

O principio dos métodos se baseia na existência de um conjunto de dados e a partir de um valor enviado pelo usuário, utilizados os métodos nesse conjunto de dados, acessando a informação se ela existir. Existem vários métodos de classificação. Vamos abortar o principio e a execução de cada um. Para esse post começaremos com Insertion Sort

Insertion Sort - O método Insertion Sort percorre todo o vetor recebido da esquerda para direita, e à medida que avança deixa os elementos mais a esquerda ordenados. Veremos abaixo o código em funcionamento:

// Função de Insertion Sort que recebe o conjunto de dados
// Em nosso exemplo recebemos um vetor de inteiros
public int[] InsertionSort (int[] vetor)
{
     int j;
     int temp;


     for (int i = 1; i < vetor.Count; i++)
     {
          j = i;

          // Enquanto o J for maior que zero, e o valor anterior for menor que o valor atual
          while ((j > 0) && (vetor[j - 1] > vetor[j]))
          {
               // Será realizada a troca do anterior com o atual
               // Define o temporário como o valor atual
               temp = vetor[j];
               // Define o valor atual como o valor anterior
               vetor[j] = vetor[j - 1];
               // Define o valor anterior como o valor temporário
               vetor[j - 1] = temp;
               j--;
          }
     }

     return vetor;
}

 

Nenhum comentário:

Postar um comentário