Métodos de Ordenação em Delphi: Troca e Inserção

Tecnologia3,33 KB

Método de Troca (Bubble Sort)

procedure TForm1.Button2Click(Sender: TObject);
var i, j, aux, achou: integer;
begin
if poslivre = 0 then
showmessage('O vetor está vazio, é necessário digitar os números no botão Carregar')
else
begin
// achou = 0 - nenhuma troca ocorreu
// achou = 1 - pelo menos uma troca ocorreu
achou:=1;
while achou = 1 do
begin
achou:=0;
for j:=1 to 9 do
begin
if vet[j] > vet[j+1] then
begin
achou:=1;
aux:=vet[j];
vet[j]:=vet[j+1];
vet[j+1]:=aux;
end;
end;
end;
ListBox1.Items.Add('');
ListBox1.Items.Add('');
ListBox1.Items.Add('Vetor ORDENADO');
ListBox1.Items.Add('');
For i:= 1 To 10 do
ListBox1.Items.Add('Posição: '+InttoStr(i)+' Valor: '+IntToStr(Vet[i]));
// variável poslivre=1 que marca que o vetor foi carregado
poslivre:=0;
end;
end;

Método de Inserção (Insertion Sort)

procedure TForm1.Button2Click(Sender: TObject);
var i, j, aux, achou, eleito, posi: integer;
begin
if poslivre = 0 then
showmessage('O vetor está vazio, é necessário digitar os números no botão Carregar')
else
begin
for i:=2 to 10 do
begin
eleito:= vet[i];
j:= 1;
achou:=0;
while (j < i) and (achou = 0) do
begin
if vet[j] > eleito then
begin
achou:=1;
posi:=j;
end
else
begin
j:=j+1;
end;
end;
if achou = 1 then
begin
for j:=i downto posi do
vet[j]:=vet[j-1];
vet[posi]:=eleito;
end;
end;
ListBox1.Items.Add('');
ListBox1.Items.Add('');
ListBox1.Items.Add('Vetor ORDENADO');
ListBox1.Items.Add('');
For i:= 1 To 10 do
ListBox1.Items.Add('Posição: '+InttoStr(i)+' Valor: '+IntToStr(Vet[i]));
poslivre:=0;
end;
end;

Baixar

PDF Word HTML