Académique Documents
Professionnel Documents
Culture Documents
Definicin:
En computacin y matemticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relacin de orden, es decir, el resultado de salida ha de ser una permutacin o reordenamiento de la entrada que satisfaga la relacin de orden dada. Las relaciones de orden ms usadas son el orden numrico y el orden lexicogrfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de bsqueda y fusin) que requieren listas ordenadas para una ejecucin rpida. Tambin es til para poner datos en forma cannica y para generar resultados legibles por humanos.
1. Mtodo burbuja:
for(i=0; i < n-1; i++){ for(j=0; j < n-1; j++){ if(vec[j] > vec[j+1]){ aux=vec[j]; vec[j]=vec[j+1]; vec[j+1]=aux;} }
Bubblesort(int matriz[]) {
int buffer; int i,j; for(i = 0; i < matriz.length; i++) { for(j = 0; j < i; j++) { if(matriz[i] < matriz[j]) { buffer = matriz[j]; matriz[j] = matriz[i]; matriz[i] = buffer; } } } }
IF a[m] <=x THEN L:=m+1 ELSE R:=m END END; FOR j=i TO R+1 BY -1 DO a[j]:=a[j-1] (*desplazamiento*) END; a[R]:=x(*insercion*) END END InsercinBinaria
4. Insercin directa
Procedimiento Insertion Sort Este procedimiento recibe el arreglo de datos a ordenar a[] y altera las posiciones de sus elementos hasta dejarlos ordenados de menor a mayor. N representa el nmero de elementos que contiene a[]. paso 1: [Para cada pos. del arreglo] For i <- 2 to N do paso 2: [Inicializa v y j] v <- a[i] j <- i. paso 3: [Compara v con los anteriores] While a[j-1] > v AND j>1 do paso 4: [Recorre los datos mayores] Set a[j] <- a[j-1], paso 5: [Decrementa j] set j <- j-1. paso 5: [Inserta v en su posicin] Set a[j] <- v. paso 6: [Fin] End.
5. Seleccin Directa
para i=1 hasta n-1 minimo = i; para j=i+1 hasta n si lista[j] < lista[minimo] entonces minimo = j /* (!) */ fin si fin para intercambiar(lista[i], lista[minimo]) fin para
Shakersort(A,N) Inicio Declarar i, izq, der, k, aux: entero izq 2 der N kN Repetir Para i der hasta izq inc (-1) haga Si (A[i-1]>A[i]) entonces Aux A[i-1] A[i-1] A[i] A[i] aux ki Fin si Fin para Izq k + 1 Para i izq hasta der haga Si (A[i-1] > A[i]) entonces Aux A[i-1] A[i-1] A[i] A[i] Aux ki Fin si Fin para Der k-1 Hasta que izq>der Fin