ORDENAMIENTO SELECCIÓN SIMPLE Suponiendo que A[1 .. i-1] está ordenado ascendentemente (OA) y que A[i .. n] está no ordenado (NO) y que además que A[i-1] <= A[j] para todo i .. n, se busca el menor elemento A[k] en A[i .. n] y se intercambia con A[i]. i OA menor ¿? n OA SS(A,n) Inicio for i=0 to n-1 do k=i for j=i+1 to n do if (A[j] < A[k]) k=j endif min = A[k] A[k] = A[i] A[i] = min Fin INSERCIÓN DIRECTA Suponiendo que A[1 .. i-1] está ordenado ascendentemente (OA) y que A[i .. n] está no ordenado (NO) se busca la posición que le corresponde a A[i] en el lado OA, desplazando elementos a medida que se avanza. i OA n OA ID(A,n) Inicio for i=2 to n do j = i-1 aux = A[i] While (j>0) and (aux < A[j]) A[j+1] = A[j] j=j–1 endwhile A[j+1] = aux Fin Profesor Mauro Castillo BUBBLE SORT Se recorre el arreglo intercambiando elementos contiguos que estén en mal orden. Así, lo “elementos pesados se hunden” hacia el fondo del arreglo. Las pasadas se ejecutan hasta que en alguna no se realicen intercambios. BS(A,n) Inicio Repetir Aux = A[1] For i=2 to n do If (A[i] < A[i-1]) Aux = A[i] A[i] = A[i-1] A[i-1] = Aux Endif n = n -1 Hasta (Aux = A[1]) Fin SHELL SORT Elegir un paso h, ordenar los h subarreglos A[1, i+h, ..]; A[2, 2+h, ..] … repetir usando un ha más pequeño. Finalizar usando h=1. SHS(A, n) Inicio h=1 Repetir h = 3*h + 1 Hasta (h > n) Repetir H = h DIV 3 For i=h+1 to n do j=1 Aux = A[i] While (j>0) and (x < A[j - h]) A[j] = A[j-h] j=j–h Endwhile A[j] = x Hasta (h=1) Fin Profesor Mauro Castillo