Escolar Documentos
Profissional Documentos
Cultura Documentos
1
CÓDIGOS NO PASCAL
CORREÇÃO
Aplicações com Vetores
• Classificação, organizar um conjunto de elementos
em uma determinada ordem (alfabética, numérica
ou cronológica)
• Método da Bolha, mais popular
• Pesquisa, verificar a existência de um valor dentro
de um conjunto
• Método de Pesquisa Sequencial
• Método de Pesquisa Binária
Método da Bolha de Classificação (Bubble Sort)
Na Prática
1º passo: procura a posição do menor elemento do vetor (min)
e em seguida realiza a troca deste elemento com
aquele que está na primeira posição (a[i]);
writeln;
writeln('Vetor Saída em Ordem Crescente:');
for i:=1 to n do writeln(i:2, '- ', a[i]:3);
end.
Método de Pesquisa Sequencial
i := 1; Encontrou := false;
1
while (i <= n) and (Encontrou = false) do
if A[i] = x
then Encontrou := true 2
else i := i + 1;
clrscr;
3
if Encontrou = true
then writeln('O elemento existe na posição ', i)
else writeln('O elemento não existe no conjunto.');
end.
Método de Pesquisa Binária
Quando os elementos de um vetor estão previamente
classificados segundo algum critério, então pesquisas
muito mais eficientes podem ser conduzidas. Entre estas
destaca-se o método de pesquisa binária.
Esta técnica consiste:
1. inicialmente o vetor é classificado
2. o elemento que divide o vetor ao meio com relação ao
seu número de componentes é localizado e comparado ao
valor procurado.
3. Se ele for igual ao valor procurado a pesquisa é dita
bem-sucedida e é interrompida.
4. no caso dele ser maior que o valor procurado, repete-se
o processo na primeira metade do vetor.
5. no caso do elemento central do vetor ser menor que o
valor procurado, repete-se o processo na segunda metade
do vetor.
6. Este procedimento é continuado até que o elemento
desejado seja localizado (pesquisa bem-sucedida), ou
então, até que não reste mais nenhum trecho do vetor
a ser pesquisado (pesquisa malsucedida).
program PesquisaBinaria;
uses Crt;
const n = 100;
var Inicio, Fim, Meio, x: integer;
Encontrou: boolean;
A: array[1..n] of integer;
begin
{ Alimenta o vetor, entrar com o elemento a ser procurado e
ordenar o vetor. }
Inicio := 1; Fim := n; Encontrou := false; 1
while (Encontrou = false) and (Inicio <= Fim) do 6
begin
Meio := (Inicio + Fim) div 2;
if A[Meio] = x 2
then Encontrou := true 3
else if A[Meio] > x 4
then Fim := Meio - 1
else Inicio := Meio + 1; 5
end;
...
if Encontrou = true
then writeln('O elemento existe na posição ', Meio)
else writeln('O elemento não existe no conjunto.');
end.