Vous êtes sur la page 1sur 10

Mtodos de

Ordenamiento
y
Bsqueda
Ing. Jos Luis Olivares
Bsqueda lineal de arreglos
La bsqueda de datos implica el determinar si un valor
(conocido como la clave de bsqueda) est presente
en los datos y, de ser as, hay que encontrar su
ubicacin.

Es comn que un programador trabaje con grandes
cantidades de datos almacenados en arreglos. Tal vez
sea necesario determinar si un arreglo contiene un valor
que concuerde con cierto valor clave. Al proceso de
buscar un elemento especfico de un arreglo se le llama
bsqueda
Bsqueda lineal de arreglos
La bsqueda lineal compara cada elemento del arreglo
con una clave de bsqueda Como el arreglo no est en
ningn orden especfico, existe la misma probabilidad de
que se encuentre el valor tanto en el primer elemento
como en el ltimo. Por lo tanto, en promedio el programa
debe comparar la clave de bsqueda con la mitad de los
elementos del arreglo.
El ordenamiento coloca los datos en orden, por lo
general ascendente o descendente, con base en una o
ms claves de ordenamiento. Una lista de nombres se
podra ordenar en forma alfabtica, las cuentas
bancarias podran ordenarse por nmero de cuenta, los
registros de nminas de empleados podran ordenarse
por nmero de seguro social, etctera.

Ejemplo
Dados 100 nmero enteros cualesquiera
almacenados en un arreglo, crear una
funcin que realice la bsqueda lineal de
un elemento dentro del arreglo. Deber
retornar la posicin en la que se encontr
el elemento.
Considere como parmetros de la funcin
el arreglo, la clave de bsqueda y el
tamao del arreglo.

Ordenamiento de datos
El ordenamiento de datos (es decir, colocar los datos en
cierto orden especfico, como ascendente o descendente)
es una de las aplicaciones computacionales ms
importantes.
Un banco ordena todos los cheques por nmero de cuenta,
de manera que pueda preparar estados de cuenta
bancarios individuales al final de cada mes. Las compaas
telefnicas ordenan sus directorios telefnicos por apellido
paterno y, dentro de ese orden, por primer nombre para
facilitar la bsqueda de los nmeros telefnicos. Casi todas
las empresas deben ordenar ciertos datos y, en muchos
casos, son cantidades masivas. El ordenamiento de datos
es un problema intrigante que ha atrado algunos de los
esfuerzos de investigacin ms intensos en el campo de
las ciencias computacionales.
Ordenamiento por Insercin
Este mtodo tambin se denomina mtodo del jugador de
cartas, por la semejanza con la forma de clasificar las
cartas de una baraja, insertando cada carta en el lugar
adecuado.
El algoritmo ordena los dos primeros elementos de la lista,
a continuacin el tercer elemento se inserta en la posicin
que corresponda, el cuarto se inserta en la lista de tres
elementos, y as sucesivamente. Este proceso continua
hasta que la lista este totalmente ordenada.

Ordenamiento por insercin
Eficiencia de la Bsqueda Lineal
Suponga que un algoritmo simplemente evala si el primer
elemento de un vector es igual al segundo elemento. Si el
vector tiene 10 elementos, este algoritmo slo requiere una
comparacin. Si el vector tiene 1000 elementos, sigue
requiriendo una comparacin. De hecho, el algoritmo es
independiente del nmero de elementos en el vector. Se dice
que este algoritmo tiene un tiempo de ejecucin
constante, el cual se representa en la notacin Big O como
O(1).
Un algoritmo que es O(1) no necesariamente requiere slo
de una comparacin. O(1) slo significa que el nmero de
comparaciones es constante; no crece a medida que
aumenta el tamao del arreglo. Un algoritmo que evala si el
primer elemento de un arreglo es igual a los siguientes tres
elementos sigue siendo O(1), aun y cuando requiera tres
comparaciones.
Un algoritmo que evala si el primer elemento de un vector es
igual a cualquiera de los dems elementos del vector requerir
cuando menos de n 1 comparaciones, en donde n es el
nmero de elementos en el vector. Si el vector tiene 10
elementos, este algoritmo requiere hasta nueve
comparaciones.
A medida que n aumenta en tamao, la parte de la expresin
correspondiente a la n domina, y si le restamos uno no hay
consecuencias. Big O est diseado para resaltar estos
trminos dominantes e ignorar los trminos que pierden
importancia, a medida que n crece. Por esta razn, se dice que
un algoritmo que requiere un total de n 1 comparaciones es
O(n). Se considera que un algoritmo O(n) tiene un tiempo de
ejecucin lineal. A menudo, O(n) significa en el orden de n,
o dicho en forma ms simple, orden n.
Eficiencia de la Bsqueda Lineal
Big O se enfoca en la forma en que aumenta el tiempo
de ejecucin de un algoritmo, en relacin con el nmero
de elementos procesados
Eficiencia de la Bsqueda Lineal

Vous aimerez peut-être aussi