Fórum Alguem tem cód p/ ordenar crescentemente array de inteiros? #210998
02/02/2004
0
Alguem tem um código pronto para me arranjar, que ordene de forma crescente uma array de números inteiros?
Muito Obrigado,
Ari Marcolino.
Ari Marcolino
Curtir tópico
+ 0Posts
02/02/2004
Maicongabriel
var V : array[1..10] of Integer;
Jogue alguns valores para o array [b:273b2fe5de]V[/b:273b2fe5de]
V[1] := 9; V[2] := 6; V[3] := 3; V[4] := 8; V[5] := 5; V[6] := 2; V[7] := 7; V[8] := 4; V[9] := 1; V[10] := 0;
Defina algumas outras variaveis de trabalho
var i,j,x,k : integer;
Código da [b:273b2fe5de]Ordenação[/b:273b2fe5de]
for i := 1 to 10 -1 do begin k := i; x := v[i]; for j := i+1 to 10 do begin if v[j] < x then begin k := j; x := v[k]; end; end; v[k] := v[i]; v[i] := x; end;
E para ver o resultado pode jogar para um ListBox por Exemplo
for I := 1 to 10 do begin ListBox1.Items.Add(IntToStr(V[i])); end;
Gostei + 0
02/02/2004
Aroldo Zanela
Algoritmo QuickSort:
procedure TQuickSort.Sort(var A: array of Integer); procedure QuickSort(var A: array of Integer; iLo, iHi: Integer); var Lo, Hi, Mid, T: Integer; begin Lo := iLo; Hi := iHi; Mid := A[(Lo + Hi) div 2]; repeat while A[Lo] < Mid do Inc(Lo); while A[Hi] > Mid do Dec(Hi); if Lo <= Hi then begin VisualSwap(A[Lo], A[Hi], Lo, Hi); T := A[Lo]; A[Lo] := A[Hi]; A[Hi] := T; Inc(Lo); Dec(Hi); end; until Lo > Hi; if Hi > iLo then QuickSort(A, iLo, Hi); if Lo < iHi then QuickSort(A, Lo, iHi); if Terminated then Exit; end; begin QuickSort(A, Low(A), High(A)); end;
Gostei + 0
13/07/2006
Leitorbinario
Algoritmo QuickSort:
procedure TQuickSort.Sort(var A: array of Integer); procedure QuickSort(var A: array of Integer; iLo, iHi: Integer); var Lo, Hi, Mid, T: Integer; begin Lo := iLo; Hi := iHi; Mid := A[(Lo + Hi) div 2]; repeat while A[Lo] < Mid do Inc(Lo); while A[Hi] > Mid do Dec(Hi); if Lo <= Hi then begin VisualSwap(A[Lo], A[Hi], Lo, Hi); T := A[Lo]; A[Lo] := A[Hi]; A[Hi] := T; Inc(Lo); Dec(Hi); end; until Lo > Hi; if Hi > iLo then QuickSort(A, iLo, Hi); if Lo < iHi then QuickSort(A, Lo, iHi); if Terminated then Exit; end; begin QuickSort(A, Low(A), High(A)); end;
Alguém conseguiu fazer esté codigo functionar? Alguem tem um exemplo pronto de como ordenar um array de inteiros com o quicksort?
Gostei + 0
13/07/2006
Aroldo Zanela
Na época, copiei o algoritmo incompleto. Segue o link para o original (em inglês):
http://www.drbob42.com/uk-bug/hood-04.htm
Gostei + 0
14/07/2006
Leitorbinario
Outra pergunta, qual o mais rápido de todos os algoritmos de ordenação?
Gostei + 0
14/07/2006
Night_man
mas como uma quandidade pequena de valores uns 100, a bolha fica melhor... Como ela eh mais simples exige menos da maquina...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)