2018-11-22 20:02:30 -03:00
|
|
|
entrada: array: arreglo de n datos; n: tamaño del array
|
2018-11-21 18:25:34 -03:00
|
|
|
salida: arreglo ordenado
|
|
|
|
|
2018-11-22 20:02:30 -03:00
|
|
|
funcion quick_sort(array, n)
|
|
|
|
si n < 2 entonces
|
|
|
|
retorna
|
|
|
|
fin si
|
|
|
|
|
|
|
|
pivote = array[n / 2]
|
|
|
|
|
|
|
|
para i = 0 y j = n - 1 con paso i = i + 1 y j = j - 1 hacer
|
|
|
|
mientras que array[i] < pivote hacer
|
|
|
|
i = i + 1
|
|
|
|
fin mientras
|
|
|
|
|
|
|
|
mientras que array[j] > pivote hacer
|
|
|
|
j = j - 1
|
|
|
|
fin mientras
|
|
|
|
|
|
|
|
si i >= j entonces
|
|
|
|
break
|
|
|
|
fin si
|
|
|
|
|
|
|
|
temp = array[i]
|
|
|
|
array[i] = array[j]
|
|
|
|
array[j] = temp
|
|
|
|
fin para
|
|
|
|
|
|
|
|
quick_sort(array, i)
|
|
|
|
quick_sort(array + i, n - i)
|
|
|
|
|
|
|
|
retorna array
|
|
|
|
fin funcion
|