浏览代码

Merge branch 'sortingHeap' of https://git.ccom.uprrp.edu/CCOM4030/JeLuOrRi into sortingFinal

luislopez66 2 年前
父节点
当前提交
5d4c573d63
共有 2 个文件被更改,包括 66 次插入0 次删除
  1. 37
    0
      heap.py
  2. 29
    0
      sorting.py

+ 37
- 0
heap.py 查看文件

1
+''' Luis Andrés López Mañán
2
+    Program written by hand as a draft on 09/19/2022
3
+    Credit goes to GeeksForGeeks
4
+    Link: https://www.geeksforgeeks.org/python-program-for-heap-sort/
5
+    Last access on 09/19/2022
6
+    Program wrriten and edited on 10/10/2022
7
+'''
8
+
9
+# This function heapifies a subtree rooted at an index
10
+# i. Also, n is the size of a heap and arr is array.
11
+
12
+def heapify(lista, n, i):
13
+		# largest is root for now
14
+		largest = i
15
+
16
+		# left child of root
17
+		left = 2 * i + 1
18
+
19
+		# right child of root
20
+		right = 2 * i + 2
21
+
22
+		# Checks if root has a left child and is greater
23
+		# than root
24
+		if l < n and lista[i] < lista[l] :
25
+			largest = l
26
+
27
+		# Checks if root has a right child and is greater
28
+		# than root
29
+		if r < n and lista[largest] < lista[r]:
30
+			largest = r
31
+
32
+		# If necessary, this changes root by swapping va-
33
+		# lues
34
+		lista[i], lista[largest] = lista[largest], lista[i]
35
+
36
+		# This heapifies the root repeatedly
37
+		heapify(lista, n, largest)

+ 29
- 0
sorting.py 查看文件

3
 Este programa calcula el promedio de tiempo de ejecucion de cuatro algoritmos de ordenamiento
3
 Este programa calcula el promedio de tiempo de ejecucion de cuatro algoritmos de ordenamiento
4
 La variable maxValor define el valor maximo de los elementos de la lista
4
 La variable maxValor define el valor maximo de los elementos de la lista
5
 La variable largoLista define el largo de las listas a ordenar
5
 La variable largoLista define el largo de las listas a ordenar
6
+<<<<<<< HEAD
6
 La variable veces define las veces que se va a hacer el ordenamiento 
7
 La variable veces define las veces que se va a hacer el ordenamiento 
8
+=======
9
+La variable veces define las veces que se va a hacer el ordenamiento
10
+>>>>>>> a2416a1f1584bddc699e3c6dfe5efdd25f2ac172
7
 Al final se imprimen los promedios de cada algortimo
11
 Al final se imprimen los promedios de cada algortimo
8
 """
12
 """
9
 from random import randint
13
 from random import randint
10
 import time
14
 import time
15
+<<<<<<< HEAD
11
 from merge import merge
16
 from merge import merge
17
+=======
18
+from heap import heap
19
+>>>>>>> a2416a1f1584bddc699e3c6dfe5efdd25f2ac172
12
 
20
 
13
 # Python program for implementation of MergeSort
21
 # Python program for implementation of MergeSort
14
 
22
 
16
 # First subarray is arr[l..m]
24
 # First subarray is arr[l..m]
17
 # Second subarray is arr[m+1..r]
25
 # Second subarray is arr[m+1..r]
18
 
26
 
27
+<<<<<<< HEAD
19
 def mergeSort(lista, l, r):
28
 def mergeSort(lista, l, r):
20
 	if l < r:
29
 	if l < r:
21
 
30
 
30
 
39
 
31
 def heapSort(lista):
40
 def heapSort(lista):
32
 	#definan el algoritmo de ordenamiento heapsort
41
 	#definan el algoritmo de ordenamiento heapsort
42
+=======
43
+def mergeSort(lista):
44
+	# definan el algoritmo de ordenamiento mergesort
45
+	return lista
46
+
47
+def heapSort(lista):
48
+	
49
+	n = len(lista)
50
+	h1 = (n // 2) - 1
51
+	for i in range(h1, -1, -1):
52
+		heapify(lista, n, i)
53
+
54
+	for i in range(h1, -1, -1):
55
+		lista[i], lista[0] = lista[0], lista[i]
56
+		heapify(lista, i, 0)
57
+
58
+>>>>>>> a2416a1f1584bddc699e3c6dfe5efdd25f2ac172
33
 	return lista
59
 	return lista
34
 
60
 
35
 def quickSort(lista):
61
 def quickSort(lista):
81
 print ("HeapSort " + str(acumulaHeap/veces) + " segundos")
107
 print ("HeapSort " + str(acumulaHeap/veces) + " segundos")
82
 print ("QuickSort " + str(acumulaQuick/veces) + " segundos")
108
 print ("QuickSort " + str(acumulaQuick/veces) + " segundos")
83
 print ("ShellSort " + str(acumulaShell/veces) + " segundos")
109
 print ("ShellSort " + str(acumulaShell/veces) + " segundos")
110
+<<<<<<< HEAD
84
 
111
 
112
+=======
113
+>>>>>>> a2416a1f1584bddc699e3c6dfe5efdd25f2ac172