Videolivro 1 - ordenação com vetores

Site: Ambiente Virtual de Ensino e Aprendizagem
Curso: Estruturas de Dados
Livro: Videolivro 1 - ordenação com vetores
Impresso por: Usuário visitante
Data: sábado, 18 Mai 2024, 21:48

1. Ordenação - Método da Bolha

Para fazer uma pesquisa de um elemento em um vetor, caso ele não esteja ordenado, quanto maior for o vetor, mais tempo levará o algoritmo de busca. Mais tarde, discutiremos algoritmos de buscas em vetores.
Neste momento trataremos da ordenação, que consiste em colocar os elementos do vetor em ordem. 

Um dos métodos é a ORDENAÇÃO POR SELEÇÃO, apresentada neste capítulo.


O método é simples:
1) Percorremos o vetor uma primeira vez, para selecionar o maior elemento que será colocado na última posição.
O vídeo a seguir ilustra esta primeira parte:

O código em Pascal para fazer esta primeira parte é:

Método da bolha - parte 1

Program OrdenaPasso1 ;
var
VET : array[1..10] of integer;
AUXILIAR, CONT: integer;
Begin
VET[1]:=7; VET[2]:=25; VET[3]:=1; VET[4]:=2; VET[5]:=3; VET[6]:=4; VET[7]:=9; VET[8]:=12; VET[9]:=6; VET[10]:=14;
for CONT:=2 to 10 do
    begin
           if VET[CONT-1] > VET[CONT] 
               then begin
               AUXILIAR := VET[CONT-1];
               VET[CONT-1]:= VET[CONT];
             VET[CONT]:=AUXILIAR;
         end;
 end;
for CONT:=1 to 10 do
write (VET[CONT], ' ');
End.



2) Em seguida percorremos o vetor a partir da posição N-1 para ordenar o segundo elemento. Faremos isso até que o vetor esteja ordenado.
O vídeo a seguir ilustra esta segunda parte:


O código final em Pascal é:
Método da bolha - algoritmo final em Pascal

Program OrdenaFinal ;
var
VET : array[1..10] of integer;
N, AUXILIAR, CONT: integer;

Begin
VET[1]:=7; VET[2]:=25; VET[3]:=1; VET[4]:=2; VET[5]:=3; VET[6]:=4;VET[7]:=9; VET[8]:=12; VET[9]:=6; VET[10]:=14;

for N := 10 downto 2 do
           
 for CONT:=2 to 10 do
    begin
    if VET[CONT-1] > VET[CONT] 
        then begin
              AUXILIAR:= VET[CONT-1];
              VET[CONT-1]:=VET[CONT];
              VET[CONT]:=AUXILIAR;
             end;
      end;

for CONT:=1 to 10 do
write (VET[CONT], ' ');
End.

Vejamos como implementar o método da bolha na linguagem Java:


2. Ordenação por inserção

O método que veremos agora é a ordenação por inserção, ou Insertion Sort, termo em inglês para este tipo de ordenação.
Vejamos o vídeo do português Joaquim Romualdo, utilizando um baralho para fazer a inserção:

O programa em Pascal para ordenar o vetor deste baralho é:

Programa Insertion Sort em Pascal:
Program InsertionSort;
var
vet : array[0..7] of integer;
cont, proximo, aux: integer;
Begin

vet[0]:= 6; vet[1]:=7; vet[2]:=1; vet[3]:=11;
vet[4]:=13; vet[5]:=10; vet[6]:=4; vet[7]:=2;
for cont:=0 to 6 do
for proximo:=(cont+1) to 7 do
begin
if (vet[proximo] < vet[cont])
then
begin
aux := vet[cont];
vet[cont] := vet[proximo];
vet[proximo] := aux;
end;
end; //final do for
// imprimir o vetor ordenado
for cont:=0 to 7 do
write (vet[cont], ' ');

End.
Vejamos a construção em Java para este método: