Métodos de Ordenação em Delphi: Troca e Inserção
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;