Métodos de Ordenação de Vetores.

Autor: Eduardo Lima
Adaptação: Adriano Oliveira

você vai aprender

Organizar seus vetores.

pré-requisitos

Lógica de programação básica com C#.

Dicas para iniciantes em algoritimos.

explicação inicial

Nesse tutorial você irá aprender três métodos diferentes de ordenações de vetores.
São eles: Inserção, Seleção e Bolha.

método de inserção

Esse método organiza o vetor na forma em que o percorre da esqueda para a direita deixando os elementos da esquerda ordenados. O método de ordenação por inserção é eficiente em um vetor com menos elementos.
Veja como funciona a ordenação:

Veja o código desse modelo:

static void Main(string[] args)
        {
            int[] vetor = { 6, 5, 3, 1, 8, 7, 2, 4 };
            int j, atual;

            for (int i = 0; i < vetor.Length; i++) // Imprimir o vetor não ordenado
                Console.Write(vetor[i] + " ");

            for (int i=1; i < vetor.Length; i++)
            {
                atual = vetor[i];
                j = i;
                while((j>0)&&(vetor[j-1]> atual))
                {
                    vetor[j] = vetor[j - 1];
                    j = j - 1;
                }
                vetor[j] = atual;
            }

            Console.WriteLine();
            for (int i = 0; i < vetor.Length; i++) //Imprimir vetor ordenado
                Console.Write(vetor[i] + " ");
        }

método seleção

Esse método de ordenação tem como função passar o menor elemento do vetor para a primeira posição, o segundo para a segunda posição e assim por diante.
Veja como funciona a ordenação:

Veja o código desse modelo:

static void Main(string[] args)
        {
            int[] vetor = { 6, 5, 3, 1, 8, 7, 2, 4 };
            int aux, min;

			for (int i = 0; i < vetor.Length; i++) // Imprimir o vetor não ordenado
                Console.Write(vetor[i] + " ");
				
            for(int i=0;i < vetor.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < vetor.Length; j++)
				{
                    if (vetor[j] < vetor[min])
					{
                        min = j;
					}
				}

                if(min != i)
                {
                    aux = vetor[min];
                    vetor[min] = vetor[i];
                    vetor[i] = aux;
                }
            }

            Console.WriteLine();
            for (int i = 0; i < vetor.Length; i++) //Imprimir vetor ordenado
                Console.Write(vetor[i] + " ");
        }

método bolhamétodo bolha

O método bolha é considerado o mais simples, tem como função percorrer o vetor várias vezes e fazer com que o elemento de maior valor vá para o topo.
Veja como funciona a ordenação:

Veja o código desse modelo:

	static void Main(string[] args)
        {
            int[] vetor = { 6, 5, 3, 1, 8, 7, 2, 4 };
            int aux;

            for (int i = 0; i < vetor.Length; i++) // Imprimir o vetor não ordenado
                Console.Write(vetor[i] + " ");

            for(int i= vetor.Length - 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;
                    }
                }
            }

            Console.WriteLine();
            for (int i = 0; i < vetor.Length; i++) //Imprimir vetor ordenado
                Console.Write(vetor[i] + " ");
            
        }

links úteis

Voltar