Вы находитесь на странице: 1из 3

BSQUEDA BINARIA:

La bsqueda binaria consiste en dividir el intervalo de bsqueda en dos partes, comparando el elementos buscado con el central. En caso de no ser iguales se redefinen los extremos del intervalo (segn el elemento central sea mayor o menos que el elemento buscado) disminuyendo el espacio de bsqueda. El proceso concluye cuando el elementos es encontrado, o bien cuando el intervalo de bsqueda se anula. Este mtodo funciona nicamente para arreglos ordenados. Con cada iteracin del mtodo el espacio de bsqueda se reduce a la mitad, por lo tanto el numero de comparaciones a realizar disminuye notablemente. Esta disminucin resulta significativa cuanto mas grande sea el tamao del arreglo. A continuacin se presenta el algoritmos de bsqueda binaria.

ALGORITMO:
Binaria (V, N, X) {Este algoritmo busca al elementos X en el arreglo ordenado V de N componentes} {IZQ, CEN y DER son variables de tipo entero. BANDERA es una variable de tipo booleano} 1. Hacer IZQ 1, DER N y BANDERA FALSO 2. Repetir mientras (IZQ DER) y (BANDERA = FALSO) Hacer CEN PARTE ENTERA ((IZQ + DER) /2) 2.1 Si X = V [CEN] entonces Hacer BANDERA VERDADERA Si no {Redefinir intervalo de bsqueda} 2.1.1 Si X = V [CEN] entonces Hacer IZQ CEN + 1 Si no Hacer DER CEN -1 2.1.2 {Fin del condicional del paso 2.1.1} 2.2 {Fin del condicional del paso 2.1} 3. {Fin del ciclo del paso 2} 4. Si BANDERA = VERDADERO entonces Escribir El elemento esta en la posicin CEN Si no Escribir El elemento no esta en el arreglo 5. {Fin del condicional del paso 4}

ORDENAMIENTO RPIDO (QUICKSORT)


El ordenamiento rpido (Quicksort en ingls) es un algoritmo basado en la tcnica de divide y vencers, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n. Esta es la tcnica de ordenamiento ms rpida conocida. El algoritmo original es recursivo, pero se utilizan versiones iterativas para mejorar su rendimiento (los algoritmos recursivos son en general ms lentos que los iterativos, y consumen ms recursos). El algoritmo fundamental es el siguiente: Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote. Resituar los dems elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que l, y al otro los mayores. En este momento, el pivote ocupa exactamente el lugar que le corresponder en la lista ordenada. La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha. Repetir este proceso de forma recursiva para cada sublista mientras stas contengan ms de un elemento. Una vez terminado este proceso todos los elementos estarn ordenados. Como se puede suponer, la eficiencia del algoritmo depende de la posicin en la que termine el pivote elegido. En el mejor caso, el pivote termina en el centro de la lista, dividindola en dos sublistas de igual tamao. En este caso, el orden de complejidad del algoritmo es O(nlog n). En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de 0(n). El peor caso depender de la implementacin del algoritmo, aunque habitualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas. En el caso promedio, el orden es O(nlog n). No es extrao, pues, que la mayora de optimizaciones que se aplican al algoritmo se centren en la eleccin del pivote.

Se presenta a continuacin una variante del algoritmo anterior, ahora sin usar la variable BANDERA. Binaria (V, N, X) {Este algoritmo busca al elementos X en el arreglo ordenado V de N componentes} {IZQ, DER y CEN son variables de tipo entero } 1. Hacer IZQ 1, DER N y CEN PARTE ENTERA ((IZQ + DER) / 2) 2. Repetir mientras (IZQ DER) y (X V [CEN]) Hacer CEN PARTE ENTERA ((IZQ + DER) /2) 2.1 Si X > V [CEN] entonces Hacer IZQ CEN + 1 Si no Hacer DER CEN -1 2.2 {Fin del condicional del paso 2.1} Hacer CEN PARTE ENTERA ((IZQ + DER) / 2) 3. {Fin del ciclo del paso 2} 4. Si IZQ > DER entonces Escribir El elemento no esta en el arreglo si no Escribir El elemento esta en la posicin CEN 5. {Fin del condicional del paso 4}