Você está na página 1de 10

PROGRAMACIN Y ESTRUCTURAS DE DATOS

1.4 ORDENAMIENTO Y BSQUEDA

Contenido
Introduccin Ordenamiento
Ordenamiento de burbuja (Bubble Sort) Ordenamiento por seleccin Ordenamiento por insercin Quicksort

Bsqueda
Bsqueda lineal Bsqueda binaria

Introduccin
Un algoritmo de ordenamiento es un algoritmo que mueve los elementos de una lista en una secuencia dada por una relacin de orden (normalmente orden numrico o lexicogrfico). Existen dos tipos de ordenamiento:
Ordenamiento interno: Ocurre cuando los datos que se van a ordenar estn en la memoria principal. Ordenamiento externo: Ocurre cuando los datos que se van a ordenar est en un almacenamiento auxiliar.

Ordenamiento de Burbuja
Caractersticas:
Es uno de los mtodos ms difundidos entre los estudiantes de programacin Es muy fcil de entender y programar Es uno de los algoritmos de ordenamiento menos eficiente.

Ordenamiento de Burbuja
La idea bsica en el ordenamiento de burbuja es iterar varias veces por el arreglo. En cada iteracin se compara cada elemento con su sucesor (x[j] con x[j+1]) y se intercambian ambos elementos si no estn en orden. Consideremos el siguiente arreglo de nmeros enteros: 25 57 48 37 12 92 86 33

Ordenamiento de Burbuja
En la primera iteracin, se hacen las siguientes comparaciones:
x[0] x[1] x[2] x[3] x[4] x[5] x[6] con con con con con con con x[1] x[2] x[3] x[4] x[5] x[6] x[7] (25 (57 (57 (57 (57 (92 (92 con con con con con con con 57) 48) 37) 12) 92) 86) 33) No hay intercambio Intercambio Intercambio Intercambio No hay intercambio Intercambio Intercambio

Al final de la primer iteracin, el arreglo queda: 25 48 37 12 57 86 33 92

Ordenamiento de Burbuja
Despus de cada iteracin, el elemento x[n-i] estar ordenado; por lo tanto, un arreglo de n elementos requiere n-1 iteraciones. 25 57 48 37 12 92 86 33 Arreglo original 25 48 37 12 57 86 33 92 Iteracin 1 25 37 12 48 57 33 86 92 Iteracin 2 25 12 37 48 33 57 86 92 Iteracin 3 12 25 37 33 48 57 86 92 Iteracin 4 12 25 33 37 48 57 86 92 Iteracin 5 12 25 33 37 48 57 86 92 Iteracin 6 12 25 33 37 48 57 86 92 Iteracin 7

Ordenamiento de Burbuja
static void OrdenaBurbuja(int []x){ int tam = x.length, aux; for(int i=1;i<tam;i++){ for(int j=0;j<tam-1;j++){ if(x[j] > x[j+1]){ aux = x[j]; x[j] = x[j+1]; x[j+1]=aux; } } } }
Ejemplo 1

Ordenamiento de Burbuja
Deficiencias:
1. Dado que despus de cada iteracin i, todos los elementos en posiciones mayores o iguales a n i ya estn ordenados, no es necesario considerarlos en las iteraciones posteriores. Por lo tanto, en la primer iteracin deben realizarse n-1 comparaciones, en la segunda iteracin deben hacerse n-2 comparaciones y as sucesivamente. 2. El algoritmo hace n-1 iteraciones, sin embargo, debera ser capaz de detectar cuando el arreglo ya est ordenado para evitar iteraciones intiles.

Ordenamiento de Burbuja
static void BurbujaOptimizado(int []x){ int tam=x.length, aux; boolean ordenado=false; for(int i=1;i<tam && ordenado==false;i++){ ordenado=true; for(int j=0;j<tam-i;j++){ if(x[j] > x[j+1]){ ordenado=false; aux = x[j]; x[j] = x[j+1]; x[j+1]=aux; } } } Ejemplo 2 }

Você também pode gostar