瀏覽代碼

implement quicksort function

José C.S. Curet 2 年之前
父節點
當前提交
b541128ae0
共有 1 個檔案被更改,包括 24 行新增1 行删除
  1. 24
    1
      sorting.py

+ 24
- 1
sorting.py 查看文件

@@ -17,8 +17,31 @@ def heapSort(lista):
17 17
 	#definan el algoritmo de ordenamiento heapsort
18 18
 	return lista
19 19
 
20
-def quickSort(lista):
20
+"""
21
+Esta implementación de la función partition, relacionada a quicksort fue extraida de geeksforgeeks.org Oct 4, 2022
22
+https://www.geeksforgeeks.org/quick-sort/
23
+"""
24
+def partition(lista, low, high):
25
+	pivot = lista[high]
26
+	i = low - 1
27
+	for j in range(low, high):
28
+		if lista[j] <= pivot:
29
+			i = i + 1
30
+			(lista[i], lista[j]) = (lista[j], lista[i])
31
+	(lista[i + 1], lista[high]) = (lista[high], lista[i + 1])
32
+
33
+	return i + 1
34
+
35
+"""
36
+Esta implementación de quicksort fue extraida de geeksforgeeks.org Oct 4, 2022
37
+https://www.geeksforgeeks.org/quick-sort/
38
+"""
39
+def quickSort(lista, low, high):
21 40
 	#definan el algoritmo de ordenamiento quicksort
41
+	if low < high:
42
+		pi = partition(lista, low, high)
43
+		quickSort(lista, low, pi - 1)
44
+		quickSort(lista, pi + 1, high)
22 45
 	return lista
23 46
 
24 47
 def shellSort(lista):