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,10 +16,25 @@ def mergeSort(lista):
16 16
 def heapSort(lista):
17 17
 	#definan el algoritmo de ordenamiento heapsort
18 18
 	return lista
19
-
19
+#Se le da credito al programador de la funcion al final del codigo
20 20
 def quickSort(lista):
21 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 39
 def shellSort(lista):
25 40
 	#definan el algoritmo de ordenamiento shellsort
@@ -37,26 +52,26 @@ acumulaShell=0 	#variable para acumular el tiempo de ejecucion del shellsort
37 52
 for i in range(veces):
38 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 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 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 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 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