Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------Funcion Principal------
- A = array[1...100]
- i = 0, j = 0, pivote = 0
- primero = 0, ultimo = 0
- for i = 1 to 100
- input A[i]
- endfor
- primero = 1
- ultimo = 100
- Do quicksort(A[], 1, 100)
- for i = 1 to 100
- print A[i]
- endfor
- -------------------------------
- ****************************************************************************
- modulo quicksort(A[], primero, ultimo)
- // definimos los índices y calculamos el pivote
- i = primero
- j = ultimo
- central = (i + j) / 2
- pivote = A[central]
- // iteramos hasta que i no sea menor que j
- while (i < j)
- // iteramos mientras que el valor de A[i] sea menor que pivote
- while (A[i] < pivote)
- // Incrementamos el índice
- i = i + 1
- endwhile
- // iteramos mientras que el valor de A[j] sea mayor que pivote
- while (A[j] > pivote)
- // decrementamos el índice
- j = j - 1
- endwhile
- // si i es menor o igual que j significa que los índices se han cruzado
- if (i < = j)
- // creamos una variable temporal para guardar el valor de A[j]
- x = A[j]
- // intercambiamos los valores de A[j] y A[i]
- A[j] = A[i]
- A[i] = x
- // incrementamos y decrementamos i y j respectivamente
- i = i + 1
- j = j - 1
- endif
- // si primero es menor que j mantenemos la recursividad
- if primero < j:
- quicksort(A[], primero, j)
- endif
- // si ultimo es mayor que i mantenemos la recursividad
- if ultimo > i:
- quicksort(A[], i, ultimo)
- endif
- ********************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement