' Ordenamiento de un vector con el metodo Quick Sort.
' https://sites.google.com/site/abugarins/, abugarins@gmail.com
'
Option _Explicit
Screen _NewImage(1260, 940, 32)
_FullScreen
Dim T As Double
Dim I As Double, J As Double
Data 37,9,74,94,-7,13,47,-3,14,71,66
Data 98,52,-63,46,48,09,04,-49,65,68,30
J = 20 ' Tamano del vector (Cantidad de numeros a ordenar).
ReDim T(J) As Double ' Vector a ordenar
Print
For I = 1 To J
Read T(I)
Print T(I);
Next I
Print
Print
QuickSort T(), 1, J
For I = 1 To J
Print T(I);
Next I
End
' Funcion de ordenamiento Quick Sort.
Sub QuickSort (Vec() As Double, Izq As Double, Der As Double)
Dim Piv As Double, Ii As Double, Jj As Double, Au As Double
If Izq < Der Then
Piv = Vec(Izq)
Ii = Izq
Jj = Der
Do
Do While Vec(Ii) < Piv
Ii = Ii + 1
Loop
Do While Vec(Jj) > Piv
Jj = Jj - 1
Loop
If Ii <= Jj Then
Au = Vec(Ii)
Vec(Ii) = Vec(Jj)
Vec(Jj) = Au
Ii = Ii + 1
Jj = Jj - 1
End If
Loop Until Ii > Jj
QuickSort Vec(), Izq, Jj
QuickSort Vec(), Ii, Der
End If
End Sub