Algoritmo al poder Autores: Karen Huánuco Huayanay 20132952 Maricielo Linares Méndez 20121589 Oscar Ashtu Peña 20120697 Carlos Carrillo Arroyo 20101652
Bubble Sort // A es el vector y n es el número de elementos Procedimiento intercambiar (A, i, j+1) aux = A[i] A[i] = A[j] A[j] = aux Fin Procedimiento BubbleSort(A,n) Para i0 hasta n-2 hacer // n-1 recorridos Para j0 hasta n-2-i hacer Si A[j+1] < A[j] entonces // si no están en orden intercambiar A[j] y A[j+1] Fin Si Fin Para
Bubble Sort Iteración 1 12 8 3 4 16 58 10 45 12 8 3 4 16 58 10 45 8 12 3 4 16 58 10 45 8 3 12 4 16 58 10 45 8 3 4 12 16 58 10 45 8 3 4 12 16 58 10 45 8 3 4 12 16 58 10 45 8 3 4 12 16 10 58 45 8 3 4 12 16 10 45 58
Iteración 2 8 3 4 12 16 10 45 58 8 3 4 12 16 10 45 58 3 8 4 12 16 10 45 58 3 4 8 12 16 10 45 58 3 4 8 12 16 10 45 58 3 4 8 12 16 10 45 58 3 4 8 12 10 16 45 58 3 4 8 12 10 16 45 58 3 4 8 12 10 16 45 58
Resultado final 3 4 8 10 12 16 45 58
p0 q0 Para i 0 hasta (n1+n2)-1 hacer Si (B[p] < C[q]) entonces A[ini + i] B[p] p p+1 Sino A[ini + i] C[q] q q+1 Fin Si Fin Para Fin Merge Sort Procedimiento mergesort( A, ini, fin) Si (ini = fin) entonces retorna; Fin si med (fin+ini)/2 mergesort(A, ini, med) mergesort(A, med+1, fin) merge(A, ini, med, fin) Fin Procedimiento merge( A, ini, med, fin) n1 med - ini + 1 n2 fin - med Para i0 hasta n1-1 hacer B[i] A[ini +i] Fin Para B[n1] 10000000.0 Para i0 hasta n2-1 hacer C[i] A[med + 1 + i] C[n2] 10000000.0 0 1 2 3 4 5 6 7
Mediana de medianas Funcion Particion (A, ini, fin, pivote) Para i ini hasta fin hacer aux A[i] Si (aux = pivote) entonces retorna; Fin si Fin para intercambiar(A, i, fin) i ini Para j ini hasta fin-1 hacer aux A[j] Si (aux <= pivote) entonces intercambiar(A, i, j); i++; retornar i Fin función Funcion MedianaDeMedianas (A, ini, fin, k) n fin - ini + 1 Para i 0 hasta n/5 hacer t ini + i * 5 OrdenarArreglo(A, t, t+5) medianas[ í ] = A[t+2] medDeMed = MedianaDeMedianas(medianas, 0, i-1, i/2) posicion = Particion (A, ini, fin, medDeMed) Si posicion = k retornar A[pos] Fin si Si posicion > k retornar MedianaDeMedianas (A, ini,pos-1, k) Si posicion < k retornar MedianaDeMedianas (A, pos+1, fin, k-posicion+ini-1) Fin función
Mediana de medianas A = (2, 5, 9, 19, 24, 54, 5, 87, 9, 10, 44, 32, 21, _____13, 24, 18, 26, 16, 19, 25, 39, 47, 56, 71)
Mediana de medianas
Mediana de medianas A = (2, 5, 9, 5, 9, 10, 2, 13, 4, 16, 18, 19, 24, 54, -----87, 21, 32, 44, 19, 26, 25, 39, 47, 56, 71)
Tabla Comparativa de Tiempos 100 1000 10 000 100 000 Bubble Sort 0.000 0.4220 47.031 Merge Sort 0.031 Mediana de medianas 1 000 000 10 000 000 Bubble Sort 4805.688 46800.000 Merge Sort 0.469 5.140 Mediana de medianas 0.125 1.204
Comparación