Browse Source

1st commit

Luis Jusino 3 years ago
parent
commit
df2e9b8222
1 changed files with 32 additions and 17 deletions
  1. 32
    17
      sorting.py

+ 32
- 17
sorting.py View File

16
 def heapSort(lista):
16
 def heapSort(lista):
17
 	#definan el algoritmo de ordenamiento heapsort
17
 	#definan el algoritmo de ordenamiento heapsort
18
 	return lista
18
 	return lista
19
-
19
+#Se le da credito al programador de la funcion al final del codigo
20
 def quickSort(lista):
20
 def quickSort(lista):
21
 	#definan el algoritmo de ordenamiento quicksort
21
 	#definan el algoritmo de ordenamiento quicksort
22
-	return lista
22
+        menor = []
23
+        igual = []
24
+        mayor = []
25
+
26
+        if len(lista) > 1:
27
+                pivot = lista[0]
28
+                for i in lista:
29
+                        if i < pivot:
30
+                                menor.append(i)
31
+                        elif i == pivot:
32
+                                igual.append(i)
33
+                        else:
34
+                                mayor.append(i)
35
+                return quickSort(menor)+igual+quickSort(mayor)
36
+        else:
37
+                return lista
23
 
38
 
24
 def shellSort(lista):
39
 def shellSort(lista):
25
 	#definan el algoritmo de ordenamiento shellsort
40
 	#definan el algoritmo de ordenamiento shellsort
37
 for i in range(veces):
52
 for i in range(veces):
38
 	lista = [randint(0,maxValor) for r in range(largoLista)] #creamos una lista con valores al azar
53
 	lista = [randint(0,maxValor) for r in range(largoLista)] #creamos una lista con valores al azar
39
 
54
 
40
-	t1 = time.clock() 				#seteamos el tiempo al empezar
55
+	t1 = time.process_time() 				#seteamos el tiempo al empezar
41
 	mergeSort(lista) 				#ejecutamos el algoritmo mergeSort
56
 	mergeSort(lista) 				#ejecutamos el algoritmo mergeSort
42
-	acumulaMerge+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
57
+	acumulaMerge+=time.process_time()-t1 	#acumulamos el tiempo de ejecucion
43
 	
58
 	
44
-	t1 = time.clock()				#seteamos el tiempo al empezar
59
+	t1 = time.process_time()				#seteamos el tiempo al empezar
45
 	heapSort(lista)					#ejecutamos el algoritmo heapSort
60
 	heapSort(lista)					#ejecutamos el algoritmo heapSort
46
-	acumulaHeap+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
47
-	
48
-	t1 = time.clock()				#seteamos el tiempo al empezar
49
-	quickSort(lista)				#ejecutamos el algoritmo quickSort
50
-	acumulaQuick+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
61
+	acumulaHeap+=time.process_time()-t1 	#acumulamos el tiempo de ejecucion
62
+
63
+	t1 = time.process_time()#seteamos el tiempo al empezar
64
+	quickSort(lista)#ejecutamos el algoritmo quickSort
65
+	acumulaQuick+=time.process_time()-t1#acumulamos el tiempo de ejecucion
51
 	
66
 	
52
-	t1 = time.clock()				#seteamos el tiempo al empezar
67
+	t1 = time.process_time()				#seteamos el tiempo al empezar
53
 	shellSort(lista)				#ejecutamos el algoritmo shellSort
68
 	shellSort(lista)				#ejecutamos el algoritmo shellSort
54
-	acumulaShell+=time.clock()-t1 	#acumulamos el tiempo de ejecucion
69
+	acumulaShell+=time.process_time()-t1 	#acumulamos el tiempo de ejecucion"""
55
 
70
 
56
 #imprimos los resultados
71
 #imprimos los resultados
57
-print "Promedio de tiempo de ejecucion de "+ str(veces) +" listas de largo " + str(largoLista)
58
-print "MergeSort " + str(acumulaMerge/veces) + " segundos"
59
-print "HeapSort " + str(acumulaHeap/veces) + " segundos"
60
-print "QuickSort " + str(acumulaQuick/veces) + " segundos"
61
-print "ShellSort " + str(acumulaShell/veces) + " segundos"
72
+print ("Promedio de tiempo de ejecucion de "+ str(veces) +" listas de largo " + str(largoLista))
73
+print ("MergeSort " + str(acumulaMerge/veces) + " segundos")
74
+print ("HeapSort " + str(acumulaHeap/veces) + " segundos")
75
+print ("QuickSort " + str(acumulaQuick/veces) + " segundos")
76
+print ("ShellSort " + str(acumulaShell/veces) + " segundos")
62
 
77