15 de mayo de 2001

Ordena con QuickSort

Funcion recursiva para ordenar arrays por el método de QuickSort

**************************************
* Funcion recursiva para ordenar arrays por el método de QuickSort
* L es el límite inferior del arreglo y R el limite superior
* o lo que es lo mismo L es la parte izquirda de la particion y R la derecha
*
* Se utiliza A como una variable privada previamente definida 
* Ejemlo de uso
*
*Dimension a[3]
*A[1]=5
*A[2]=4
*A[3]=3
*qsort(1,3)
*?A[1],A[2],a[3]
*
* Autor: Ramón Rodriguez Martinez
**************************************
procedure qSort(l, r)
Local   i, j, x, y
 i = l
 j = r
 x = a[Int((l+r)/2)]
 Do While i < j
     Do while a[i] < x
      i = i + 1
     EndDo
     Do while x < a[j]
      j = j - 1
     EndDo
     if i <= j then
        y = a[i]
        a[i] = a[j]
        a[j] = y
        i = i + 1
        j = j - 1
     endIf
   EndDo
   if l < j then
    qSort(l, j)
   endif
   if i < r then
    qSort(i, r)
   endif
endProc
Ramón Rodriguez Martinez

No hay comentarios. :

Publicar un comentario

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.