3 Commity

Autor SHA1 Wiadomość Data
  Jasiel Rivera b984f3073f added parameters to quickSort call 2 lat temu
  Jasiel Rivera 699263d1f1 Merge branch 'QuickJasiel' into sortingFinal 2 lat temu
  Jasiel Rivera 9946166a3b quickSort Algo 2 lat temu
1 zmienionych plików z 18 dodań i 4 usunięć
  1. 18
    4
      sorting.py

+ 18
- 4
sorting.py Wyświetl plik

@@ -79,9 +79,23 @@ def heapSort(lista):
79 79
 
80 80
 	return lista
81 81
 
82
-def quickSort(lista):
83
-	# definan el algoritmo de ordenamiento quicksort
84
-	return lista
82
+def quickSort(lista, bajo, alto):
83
+    if bajo < alto:
84
+        p = partition(lista, bajo, alto)
85
+        quickSort(lista, bajo, p - 1)
86
+        quickSort(lista, p + 1, alto)
87
+    return lista
88
+	
89
+
90
+def partition(lista, bajo, alto):
91
+    pivot = lista[alto]
92
+    i = bajo - 1
93
+    for j in range(bajo, alto):
94
+        if lista[j] <= pivot:
95
+            i += 1
96
+            lista[i], lista[j] = lista[j], lista[i]
97
+    lista[i + 1], lista[alto] = lista[alto], lista[i + 1]
98
+    return i + 1
85 99
 
86 100
 def shellSort(lista):
87 101
 	# definan el algoritmo de ordenamiento shellsort
@@ -150,7 +164,7 @@ for i in range(veces):
150 164
 	acumulaHeap+=time.process_time()-t1 	#acumulamos el tiempo de ejecucion
151 165
 
152 166
 	t1 = time.process_time() 				#seteamos el tiempo al empezar
153
-	quickSort(quicklista)				#ejecutamos el algoritmo quickSort
167
+	quickSort(quicklista,0 , len(quicklista)-1)				#ejecutamos el algoritmo quickSort
154 168
 	acumulaQuick+=time.process_time()-t1 	#acumulamos el tiempo de ejecucion
155 169
 
156 170
 	t1 = time.process_time()				#seteamos el tiempo al empezar