Ver Mensaje Individual
  #1  
Antiguo 13-09-2015
BEPAI BEPAI is offline
Miembro
 
Registrado: feb 2007
Posts: 19
Reputación: 0
BEPAI Va por buen camino
Ordenación Quicksort

Poner la ordenación de forma descendente este algoritmo, o quizás mejor, elegir la más conveniente.


Código Delphi [-]
Globales>> iLo, iHi: Integer

Código Delphi [-]
PROCEDURE QUICKSORT(var A: array of Integer; iLo, iHi: Integer) ;

 var
   Lo, Hi, Pivot, T: Integer;

 Begin

   Lo := iLo;
   Hi := iHi;
   Pivot := A[(Lo + Hi) div 2];

   REPEAT
     while A[Lo] < Pivot do Inc(Lo) ;
     while A[Hi] > Pivot do Dec(Hi) ;
     if Lo <= Hi then
     begin
       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) ;

 end;

Usage:
Código Delphi [-]
 Var

   intArray : array of integer;

 begin
   SetLength(intArray,10) ;
 
   //Add values to intArray
   intArray[0] := 2007;
   ...
   intArray[9] := 1973;
 
   //sort
   QuickSort(intArray, Low(intArray), High(intArray)) ;

Cómo hacer esto y si se puede mejorar.
Gracias.
Responder Con Cita