Alguem tem cód p/ ordenar crescentemente array de inteiros?
Pessoal
Alguem tem um código pronto para me arranjar, que ordene de forma crescente uma array de números inteiros?
Muito Obrigado,
Ari Marcolino.
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
Curtidas 0
Respostas
Maicongabriel
02/02/2004
Defina um array, exemplo
Jogue alguns valores para o array [b:273b2fe5de]V[/b:273b2fe5de]
Defina algumas outras variaveis de trabalho
Código da [b:273b2fe5de]Ordenação[/b:273b2fe5de]
E para ver o resultado pode jogar para um ListBox por Exemplo
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
Aroldo Zanela
02/02/2004
Colega,
Algoritmo QuickSort:
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
Leitorbinario
02/02/2004
[quote:71dbafb06c=´Aroldo Zanela´]Colega,
Algoritmo QuickSort:
[/quote:71dbafb06c]
Alguém conseguiu fazer esté codigo functionar? Alguem tem um exemplo pronto de como ordenar um array de inteiros com o quicksort?
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
Aroldo Zanela
02/02/2004
Colega,
Na época, copiei o algoritmo incompleto. Segue o link para o original (em inglês):
http://www.drbob42.com/uk-bug/hood-04.htm
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
Leitorbinario
02/02/2004
ok, já consegui fazer.
Outra pergunta, qual o mais rápido de todos os algoritmos de ordenação?
Outra pergunta, qual o mais rápido de todos os algoritmos de ordenação?
GOSTEI 0
Night_man
02/02/2004
O quickSort eh o mais rapido de todos,
mas como uma quandidade pequena de valores uns 100, a bolha fica melhor... Como ela eh mais simples exige menos da maquina...
mas como uma quandidade pequena de valores uns 100, a bolha fica melhor... Como ela eh mais simples exige menos da maquina...
GOSTEI 0