0% encontró este documento útil (0 votos)
5 vistas1 página

Implementación de Quicksort en C#

Cargado por

espaniaph
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas1 página

Implementación de Quicksort en C#

Cargado por

espaniaph
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

def intercambiar(lista, i, j):

lista[i], lista[j] = lista[j], lista[i]

def pivote(lista, ini, fin):


p = lista[ini] # Elegimos el pivote como el primer elemento
k = ini + 1
b = fin

while True:
while k <= fin and lista[k] < p: # Buscamos un elemento mayor que el
pivote
k += 1
while lista[b] > p: # Buscamos un elemento menor que el pivote
b -= 1
if k >= b: # Si ambos índices se cruzan, terminamos
break
intercambiar(lista, k, b) # Intercambiamos elementos

intercambiar(lista, ini, b) # Colocamos el pivote en su lugar


return lista, b

def quickSort(lista, ini, fin):


if ini < fin:
lista, b = pivote(lista, ini, fin)
quickSort(lista, ini, b - 1) # Ordenamos la parte izquierda
quickSort(lista, b + 1, fin) # Ordenamos la parte derecha
return lista

# Prueba del algoritmo


lista = [7, 6, 2, 3, 4, 65, 8, 64, 74, 5, 88]
print("Array desordenado: ", lista)
ini = 0
fin = len(lista) - 1
lista = quickSort(lista, ini, fin)
print("Array ordenado:", lista)

También podría gustarte