Browse Source

sorting.py

Héctor 2 years ago
commit
bac07ff300
1 changed files with 66 additions and 0 deletions
  1. 66
    0
      sorting.py

+ 66
- 0
sorting.py View File

@@ -0,0 +1,66 @@
1
+"""
2
+Carlos J Corrada Bravo
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
5
+La variable largoLista define el largo de las listas a ordenar
6
+La variable veces define las veces que se va a hacer el ordenamiento 
7
+Al final se imprimen los promedios de cada algortimo
8
+"""
9
+from random import randint
10
+import time
11
+
12
+def mergeSort(lista):
13
+	#definan el algoritmo de ordenamiento mergesort
14
+	return lista
15
+
16
+def heapSort(lista):
17
+	#definan el algoritmo de ordenamiento heapsort
18
+	return lista
19
+
20
+def quickSort(lista):
21
+	#definan el algoritmo de ordenamiento quicksort
22
+	return lista
23
+
24
+def shellSort(lista):
25
+	#definan el algoritmo de ordenamiento shellsort
26
+	return lista
27
+
28
+maxValor=1000 	#define el valor maximo de los elementos de la lista
29
+largoLista=1000 #define el largo de las listas a ordenar
30
+veces=100 		#define las veces que se va a hacer el ordenamiento 
31
+
32
+acumulaMerge=0 	#variable para acumular el tiempo de ejecucion del mergesort
33
+acumulaHeap=0 	#variable para acumular el tiempo de ejecucion del heapsort
34
+acumulaQuick=0 	#variable para acumular el tiempo de ejecucion del quicksort
35
+acumulaShell=0 	#variable para acumular el tiempo de ejecucion del shellsort
36
+
37
+for i in range(veces):
38
+	mergelista = [randint(0,maxValor) for r in range(largoLista)] #creamos una lista con valores al azar
39
+	heaplista=list(mergelista)
40
+	quicklista=list(mergelista)
41
+	searchlista=list(mergelista)
42
+
43
+	t1 = time.clock() 				#seteamos el tiempo al empezar
44
+	mergeSort(mergelista) 				#ejecutamos el algoritmo mergeSort
45
+	acumulaMerge+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
46
+	
47
+	t1 = time.clock()				#seteamos el tiempo al empezar
48
+	heapSort(heaplista)					#ejecutamos el algoritmo heapSort
49
+	acumulaHeap+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
50
+	
51
+	t1 = time.clock()				#seteamos el tiempo al empezar
52
+	quickSort(quicklista)				#ejecutamos el algoritmo quickSort
53
+	acumulaQuick+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
54
+	
55
+	t1 = time.clock()				#seteamos el tiempo al empezar
56
+	shellSort(searchlista)				#ejecutamos el algoritmo shellSort
57
+	acumulaShell+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
58
+
59
+#imprimos los resultados
60
+print "Promedio de tiempo de ejecucion de "+ str(veces) +" listas de largo " + str(largoLista)
61
+print "MergeSort " + str(acumulaMerge/veces) + " segundos"
62
+print "HeapSort " + str(acumulaHeap/veces) + " segundos"
63
+print "QuickSort " + str(acumulaQuick/veces) + " segundos"
64
+print "ShellSort " + str(acumulaShell/veces) + " segundos"
65
+
66
+