IntroducciónLos algoritmos de ordenamiento nos permiten, como su nombre lo dice, ordenar. En este caso, nos servirán para ordenar vectores o matrices con valores asignados aleatoriamente. Nos centraremos en los métodos mas populares, analizando la cantidad de comparaciones que suceden, el tiempo que demora y revisando el código, escrito en Java, de cada algoritmo.
Método BurbujaEl método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista contra todos, si se cumple que uno es mayor o menor a otro, entonces los intercambia de posición.Se denomina burbuja debidoa que los valores más pequeños «burbujean» gradualmente (suben) hacia la cima o parte superior del array de modo similar a como suben las burbujas en el agua, mientras que los valores mayores se hunden en la parte inferior del array.
Método Burbuja SimpleLa burbuja mas simple de todas es la que compara todos con todos, generando comparaciones extras, por ejemplo, no tiene sentido que se compare con sigo mismo o que se compare con los valores anteriores a el, ya que supuestamente, ya están ordenados.Por ejemplo, imaginemos que tenemos los siguientes valores:Lo que haría una burbuja simple, seria comenzar recorriendo los valores de izq. A derecha, comenzando por el 5. Lo compara con el 6, con el 1, con el 0 y con el 3, si es mayor o menor (dependiendo si el orden es ascendiente o descendiente) se intercambian de posición. Luego continua con el siguiente, con el 6, y lo compara con todos los elementos de la lista, esperando ver si se cumple o no la misma condición que con el primer elemento. Así, sucesivamente, hasta el ultimo elemento de la lista.
Burbuja MejoradaUna nueva versión del método de la burbuja seria limitando el numero de comparaciones, ya que es innecesario que se compare consigo misma. Si tenemos una lista de 10.000 elementos, entonces son 10.000 comparaciones que están sobrando.Imaginemos si tenemos 1.000.000 de elementos. El método seria mucho mas optimo con “n” comparaciones menos (n = total de elementos).
Método Burbuja OptimizadaSi al cambio anterior (el de la burbuja mejorada) le sumamos otro cambio, el hecho que los elementos que están detrás del que se esta comparando, ya están ordenados, las comparaciones serian aun menos y el método seria aun mas efectivo. Si tenemos una lista de 10 elementos y estamos analizando el quinto elemento, que sentido tiene que el quinto se compare con el primero, el segundo o el tercero, si supuestamente, ya están ordenados.
Ejemplo:Elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable interruptor para detectar si se ha producido intercambio en la pasada.Pasada 0Intercambio 50 y 20Intercambio 50 y 4050 y 80 ordenadosIntercambio 80 y 30Elemento mayor es 80interruptor = TRUE
Pasada 120 y 40 ordenados40 y 50 ordenadosSe intercambian 50 y 30• 50 y 80 elementos mayores y ordenados• interruptor = TRUE
Pasada 2.- Solo se hacen dos comparaciones.20 y 40 ordenadosSe intercambian 40 y 30interruptor = TRUEPasada 3.- Se hace una única comparación de 20 y 30, y no se produce intercambio:20 y 30 ordenadosLista ordenada interruptor = FALSE
Método SelecciónLos métodos de ordenación por selección se basan en dos principios básicos:Seleccionar el elemento más pequeño (o más grande) del arreglo.Colocarlo en la posición más baja (o más alta) del arreglo.A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde.Consideremos un array A con 5 valores enteros 51, 21, 39, 80, 36: A[0]             A[1]           A[2]           A[3]             A[4]Pasada 0. Seleccionar 21Intercambiar 21 y A[0]Pasada 0Pasada 1. Seleccionar 36Intercambiar 36 y A[1]Pasada 1
Pasada 2. Seleccionar 39Intercambiar 39 y A[2]Pasada 2Pasada 3. Seleccionar 51Intercambiar 51 y A[3]Pasada 3Lista ordenada
Método InserciónEl método de ordenación por inserción es similar al proceso típico de ordenar tarjetas de nombres (cartas de una baraja) por orden alfabético, que consiste en insertar un nombre en su posición correcta dentro de una lista o archivo que ya está ordenado.Así el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30.Se comienza por el 50Se inserta 20 en la posición 050 se mueve a posición 1Procesar 20Se inserta 40 en la posición 1Se mueve 50 a posición 2Procesar 40El elemento 80 está bien ordenadoProcesar 80Se inserta 30 en posición 1Se desplaza a la derecha la sublista derechaProcesar 30
Método IntercambioSe encarga de ordenar los elementos de una lista en orden ascendente. Este algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando el elemento inferior de la lista con los restantes y efectuando intercambio de posiciones cuando el orden resultante de la comparación no sea el correcto.Pasada 0 A[0]   A[1]    A[2]    A[3]             Se realiza intercambioNo se realiza intercambioSe realiza intercambioLista inicialLista resultante
Pasada 1 A[0]   A[1]    A[2]    A[3]             IntercambioIntercambioLista inicialLista resultantePasada 2La sublista a considerar ahora es 8, 6 ya que 2, 4 está ordenada. Una comparación única se produce entre los dos elementos de la sublistaIntercambioLista resultanteLista inicial
Método ShellEl nombre se debe a su inventor, D. L. Shell. Se suele denominar también ordenación por inserción con incrementos decrecientes. Se considera que el método Shell es una mejora de los métodos de inserción directa. Shell modifica los saltos contiguos resultantes de las comparaciones por saltos de mayor tamaño y con ello se consigue que la ordenación sea más rápida. Generalmente se toma como salto inicial n/2 (siendo n el número de elementos), luego se reduce el salto a la mitad en cada repetición hasta que el salto es de tamaño 1.
Ejemplo: 74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30Se debe empezar con k=n/2 , siendo n el número de elementos de arreglo, y utilizando siempre la división entera.... después iremos variando k haciéndolo más pequeño mediante sucesivas divisiones por 2, hasta llegar a k=1. Pero vamos a ello... En nuestro ejemplo, n=11 (porque hay 11 elementos). Así que k=n/2=11/2=5Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original en 5 sub-arreglo, en los cuales, sus elementos estarán separados por 5 lugares del arreglo original (el salto o gap es 5). 1.- Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos también otro elemento (el 97) volvemos a contar 5 y tomamos otro (el 30) y acabamos porque se nos acaba el arreglo. El primer sub-arreglo con k=5 es el formado por 74, 97 y 30. 74, 14, 21, 44, 38, 97 , 11, 78, 65, 88, 30
Ahora, ordenaremos los elementos del sub-arreglo (rojo) pero sólo entre ellos, utilizando el algoritmo de Inserción directa.  74, 97, 3030, 14, 21, 44, 38, 74 , 11, 78, 65, 88, 97  El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final.Formemos ahora otro sub-arreglo con salto k=5... partiendo del segundo elemento (el 14) y contando 5 (tomamos también el 11) y hasta ahí, porque se acaba el arreglo.   30, 14 , 21, 44, 38, 74 , 11 , 78, 65, 88, 97Vamos a ordenarlos el 11 primero y el 14 después.  30 , 11, 21, 44, 38, 74 , 14, 78, 65, 88, 97
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Ahora a por otro el 21 y el 78    30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Están en orden entre ellos, así que se quedan como están.Ahora le toca al sub-arreglo formado por el 44 y el 65    30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Que también están en orden entre ellos.y finalmente el 38 y el 88, que también están en orden. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Aún no hemos terminado de ordenarlos. Nuestra k valía 5, así que ahora k←k/2=5/2=2, nuestra nueva k vale 2. Repetimos todo el desarrollo anterior, pero ahora nos saldrán 2 sub-arreglo cuyos elementos están separados por 2 lugares. Tomamos el primer elemento (el 30) contamos 2 lugares y tomamos también otro elemento (el 21) volvemos a contar 2 y tomamos otro (el 38), volvemos a contar y ahora tomamos (el 14), seguimos contado y tomamos (el 65), seguimos contando y tomamos (el 97) y acabamos porque se nos acaba el arreglo.  Y posteriormente se forma el según sub-arreglo que empieza con el 11.30, 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Se ordena (primero los rojos), con el método de inserción:14, 11 , 21, 44, 30, 74 , 38, 78, 65, 88, 97Finalmente ordenamos los negros, pero estos ya están ordenados:14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
Finalmente, calculamos un nuevo k dividiendo el que tenemos entre 2. k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos obtener 1 sub-arreglo cuyos elementos están separados 1 posición: el propio arreglo original. Dicho de otra manera... cuando k es 1, el algoritmo de Shell se comporta exactamente igual que el de inserción directa sobre todo el arreglo.14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97El método de inserción directa se comporta tanto mejor cuanto más cerca está cada elemento de su sitio definitivo.   Finalmente, el arreglo queda de ésta manera:  11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97   Cada elemento descolocado ha tenido que moverse pocos lugares. Muchos de ellos ni siquiera se han movido.
BÚSQUEDA EN LISTAS: BÚSQUEDAS SECUENCIAL Y BINARIACon mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en arrays y registros, y por ello será necesario determinar si un array contiene un valor que coincida con un cierto valor clave. El proceso de encontrar un elemento específico de un array se denomina búsqueda. En esta sección se examinarán dos técnicas de búsqueda: búsqueda lineal o secuencial, latécnica más sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente.
Búsqueda SecuencialBusca un elemento de una lista utilizando un valor destino llamado clave. En una búsqueda secuencial (a veces llamada búsqueda lineal), los elementos de una lista o vector se exploran (se examinan) en secuencia, uno después de otro. La búsqueda secuencial es necesaria, por ejemplo, si se desea encontrar la persona cuyo número de teléfono es 958-220000 en un directorio o listado telefónico de su ciudad. ArrayLa búsqueda secuencial se utiliza normalmente cuando el array no está ordenado. Comienza en el principio del array y busca hasta que se encuentra el dato buscado y se llega al final de la lista.
Ejemplo:public static int search(int[ ] arr, int valor) {	int i = 0;while (i < arr.length && arr[i] != valor) {		i++;	}if(i< arr.length) return i+1 ;else   return-1}
Búsqueda BinariaSi la lista está ordenada, la búsqueda binaria proporciona una técnica de búsqueda mejorada. Una búsqueda binaria típica es la búsqueda de una palabra en un diccionario. Dada la palabra, se abre el libro cerca del principio, del centro o del final dependiendo de la primera letra del primer apellido o de la palabra que busca. Se puede tener suerte y acertar con la página correcta; pero, normalmente, no será así y se mueve el lector a la página anterior o posterior del libro. Por ejemplo, si la palabra comienza con «J» y se está en la «L» se mueve uno hacia atrás. El proceso continúa hasta que se encuentra la página buscada o hasta que se descubre que la palabra no está en la lista.Si un array está ordenado, se puede utilizar un algoritmo más eficiente denominado búsqueda binaria.
Ejemplo de BúsquedasSe tiene un arreglo ordenado de 19 casillas.Si buscamos el número 107. ¿En que posición del arreglo se encuentra? ¿Cuántas comparaciones se hacen?Búsqueda Secuencial		Búsqueda BinariaPosición = 16			          Posición = 16Comparaciones = 17		comparaciones = 3En ¿cuál fue el número menor de comparaciones? ¿Por qué?
Metodos de ordenamiento

Metodos de ordenamiento

  • 1.
    IntroducciónLos algoritmos deordenamiento nos permiten, como su nombre lo dice, ordenar. En este caso, nos servirán para ordenar vectores o matrices con valores asignados aleatoriamente. Nos centraremos en los métodos mas populares, analizando la cantidad de comparaciones que suceden, el tiempo que demora y revisando el código, escrito en Java, de cada algoritmo.
  • 2.
    Método BurbujaEl métodode la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista contra todos, si se cumple que uno es mayor o menor a otro, entonces los intercambia de posición.Se denomina burbuja debidoa que los valores más pequeños «burbujean» gradualmente (suben) hacia la cima o parte superior del array de modo similar a como suben las burbujas en el agua, mientras que los valores mayores se hunden en la parte inferior del array.
  • 3.
    Método Burbuja SimpleLaburbuja mas simple de todas es la que compara todos con todos, generando comparaciones extras, por ejemplo, no tiene sentido que se compare con sigo mismo o que se compare con los valores anteriores a el, ya que supuestamente, ya están ordenados.Por ejemplo, imaginemos que tenemos los siguientes valores:Lo que haría una burbuja simple, seria comenzar recorriendo los valores de izq. A derecha, comenzando por el 5. Lo compara con el 6, con el 1, con el 0 y con el 3, si es mayor o menor (dependiendo si el orden es ascendiente o descendiente) se intercambian de posición. Luego continua con el siguiente, con el 6, y lo compara con todos los elementos de la lista, esperando ver si se cumple o no la misma condición que con el primer elemento. Así, sucesivamente, hasta el ultimo elemento de la lista.
  • 4.
    Burbuja MejoradaUna nuevaversión del método de la burbuja seria limitando el numero de comparaciones, ya que es innecesario que se compare consigo misma. Si tenemos una lista de 10.000 elementos, entonces son 10.000 comparaciones que están sobrando.Imaginemos si tenemos 1.000.000 de elementos. El método seria mucho mas optimo con “n” comparaciones menos (n = total de elementos).
  • 5.
    Método Burbuja OptimizadaSial cambio anterior (el de la burbuja mejorada) le sumamos otro cambio, el hecho que los elementos que están detrás del que se esta comparando, ya están ordenados, las comparaciones serian aun menos y el método seria aun mas efectivo. Si tenemos una lista de 10 elementos y estamos analizando el quinto elemento, que sentido tiene que el quinto se compare con el primero, el segundo o el tercero, si supuestamente, ya están ordenados.
  • 6.
    Ejemplo:Elementos (A =50, 20, 40, 80, 30), donde se introduce una variable interruptor para detectar si se ha producido intercambio en la pasada.Pasada 0Intercambio 50 y 20Intercambio 50 y 4050 y 80 ordenadosIntercambio 80 y 30Elemento mayor es 80interruptor = TRUE
  • 7.
    Pasada 120 y40 ordenados40 y 50 ordenadosSe intercambian 50 y 30• 50 y 80 elementos mayores y ordenados• interruptor = TRUE
  • 8.
    Pasada 2.- Solose hacen dos comparaciones.20 y 40 ordenadosSe intercambian 40 y 30interruptor = TRUEPasada 3.- Se hace una única comparación de 20 y 30, y no se produce intercambio:20 y 30 ordenadosLista ordenada interruptor = FALSE
  • 9.
    Método SelecciónLos métodosde ordenación por selección se basan en dos principios básicos:Seleccionar el elemento más pequeño (o más grande) del arreglo.Colocarlo en la posición más baja (o más alta) del arreglo.A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde.Consideremos un array A con 5 valores enteros 51, 21, 39, 80, 36: A[0] A[1] A[2] A[3] A[4]Pasada 0. Seleccionar 21Intercambiar 21 y A[0]Pasada 0Pasada 1. Seleccionar 36Intercambiar 36 y A[1]Pasada 1
  • 10.
    Pasada 2. Seleccionar39Intercambiar 39 y A[2]Pasada 2Pasada 3. Seleccionar 51Intercambiar 51 y A[3]Pasada 3Lista ordenada
  • 11.
    Método InserciónEl métodode ordenación por inserción es similar al proceso típico de ordenar tarjetas de nombres (cartas de una baraja) por orden alfabético, que consiste en insertar un nombre en su posición correcta dentro de una lista o archivo que ya está ordenado.Así el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30.Se comienza por el 50Se inserta 20 en la posición 050 se mueve a posición 1Procesar 20Se inserta 40 en la posición 1Se mueve 50 a posición 2Procesar 40El elemento 80 está bien ordenadoProcesar 80Se inserta 30 en posición 1Se desplaza a la derecha la sublista derechaProcesar 30
  • 12.
    Método IntercambioSe encargade ordenar los elementos de una lista en orden ascendente. Este algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando el elemento inferior de la lista con los restantes y efectuando intercambio de posiciones cuando el orden resultante de la comparación no sea el correcto.Pasada 0 A[0] A[1] A[2] A[3] Se realiza intercambioNo se realiza intercambioSe realiza intercambioLista inicialLista resultante
  • 13.
    Pasada 1 A[0] A[1] A[2] A[3] IntercambioIntercambioLista inicialLista resultantePasada 2La sublista a considerar ahora es 8, 6 ya que 2, 4 está ordenada. Una comparación única se produce entre los dos elementos de la sublistaIntercambioLista resultanteLista inicial
  • 14.
    Método ShellEl nombrese debe a su inventor, D. L. Shell. Se suele denominar también ordenación por inserción con incrementos decrecientes. Se considera que el método Shell es una mejora de los métodos de inserción directa. Shell modifica los saltos contiguos resultantes de las comparaciones por saltos de mayor tamaño y con ello se consigue que la ordenación sea más rápida. Generalmente se toma como salto inicial n/2 (siendo n el número de elementos), luego se reduce el salto a la mitad en cada repetición hasta que el salto es de tamaño 1.
  • 15.
    Ejemplo: 74, 14,21, 44, 38, 97, 11, 78, 65, 88, 30Se debe empezar con k=n/2 , siendo n el número de elementos de arreglo, y utilizando siempre la división entera.... después iremos variando k haciéndolo más pequeño mediante sucesivas divisiones por 2, hasta llegar a k=1. Pero vamos a ello... En nuestro ejemplo, n=11 (porque hay 11 elementos). Así que k=n/2=11/2=5Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original en 5 sub-arreglo, en los cuales, sus elementos estarán separados por 5 lugares del arreglo original (el salto o gap es 5). 1.- Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos también otro elemento (el 97) volvemos a contar 5 y tomamos otro (el 30) y acabamos porque se nos acaba el arreglo. El primer sub-arreglo con k=5 es el formado por 74, 97 y 30. 74, 14, 21, 44, 38, 97 , 11, 78, 65, 88, 30
  • 16.
    Ahora, ordenaremos loselementos del sub-arreglo (rojo) pero sólo entre ellos, utilizando el algoritmo de Inserción directa.  74, 97, 3030, 14, 21, 44, 38, 74 , 11, 78, 65, 88, 97  El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final.Formemos ahora otro sub-arreglo con salto k=5... partiendo del segundo elemento (el 14) y contando 5 (tomamos también el 11) y hasta ahí, porque se acaba el arreglo.   30, 14 , 21, 44, 38, 74 , 11 , 78, 65, 88, 97Vamos a ordenarlos el 11 primero y el 14 después.  30 , 11, 21, 44, 38, 74 , 14, 78, 65, 88, 97
  • 17.
    30 , 11, 21, 44, 38, 74 , 14 , 78, 65, 88, 97Ahora a por otro el 21 y el 78    30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Están en orden entre ellos, así que se quedan como están.Ahora le toca al sub-arreglo formado por el 44 y el 65    30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Que también están en orden entre ellos.y finalmente el 38 y el 88, que también están en orden. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
  • 18.
    Aún no hemosterminado de ordenarlos. Nuestra k valía 5, así que ahora k←k/2=5/2=2, nuestra nueva k vale 2. Repetimos todo el desarrollo anterior, pero ahora nos saldrán 2 sub-arreglo cuyos elementos están separados por 2 lugares. Tomamos el primer elemento (el 30) contamos 2 lugares y tomamos también otro elemento (el 21) volvemos a contar 2 y tomamos otro (el 38), volvemos a contar y ahora tomamos (el 14), seguimos contado y tomamos (el 65), seguimos contando y tomamos (el 97) y acabamos porque se nos acaba el arreglo. Y posteriormente se forma el según sub-arreglo que empieza con el 11.30, 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97Se ordena (primero los rojos), con el método de inserción:14, 11 , 21, 44, 30, 74 , 38, 78, 65, 88, 97Finalmente ordenamos los negros, pero estos ya están ordenados:14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
  • 19.
    Finalmente, calculamos unnuevo k dividiendo el que tenemos entre 2. k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos obtener 1 sub-arreglo cuyos elementos están separados 1 posición: el propio arreglo original. Dicho de otra manera... cuando k es 1, el algoritmo de Shell se comporta exactamente igual que el de inserción directa sobre todo el arreglo.14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97El método de inserción directa se comporta tanto mejor cuanto más cerca está cada elemento de su sitio definitivo.   Finalmente, el arreglo queda de ésta manera:  11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97   Cada elemento descolocado ha tenido que moverse pocos lugares. Muchos de ellos ni siquiera se han movido.
  • 20.
    BÚSQUEDA EN LISTAS:BÚSQUEDAS SECUENCIAL Y BINARIACon mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en arrays y registros, y por ello será necesario determinar si un array contiene un valor que coincida con un cierto valor clave. El proceso de encontrar un elemento específico de un array se denomina búsqueda. En esta sección se examinarán dos técnicas de búsqueda: búsqueda lineal o secuencial, latécnica más sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente.
  • 21.
    Búsqueda SecuencialBusca unelemento de una lista utilizando un valor destino llamado clave. En una búsqueda secuencial (a veces llamada búsqueda lineal), los elementos de una lista o vector se exploran (se examinan) en secuencia, uno después de otro. La búsqueda secuencial es necesaria, por ejemplo, si se desea encontrar la persona cuyo número de teléfono es 958-220000 en un directorio o listado telefónico de su ciudad. ArrayLa búsqueda secuencial se utiliza normalmente cuando el array no está ordenado. Comienza en el principio del array y busca hasta que se encuentra el dato buscado y se llega al final de la lista.
  • 22.
    Ejemplo:public static intsearch(int[ ] arr, int valor) { int i = 0;while (i < arr.length && arr[i] != valor) { i++; }if(i< arr.length) return i+1 ;else return-1}
  • 23.
    Búsqueda BinariaSi lalista está ordenada, la búsqueda binaria proporciona una técnica de búsqueda mejorada. Una búsqueda binaria típica es la búsqueda de una palabra en un diccionario. Dada la palabra, se abre el libro cerca del principio, del centro o del final dependiendo de la primera letra del primer apellido o de la palabra que busca. Se puede tener suerte y acertar con la página correcta; pero, normalmente, no será así y se mueve el lector a la página anterior o posterior del libro. Por ejemplo, si la palabra comienza con «J» y se está en la «L» se mueve uno hacia atrás. El proceso continúa hasta que se encuentra la página buscada o hasta que se descubre que la palabra no está en la lista.Si un array está ordenado, se puede utilizar un algoritmo más eficiente denominado búsqueda binaria.
  • 24.
    Ejemplo de BúsquedasSetiene un arreglo ordenado de 19 casillas.Si buscamos el número 107. ¿En que posición del arreglo se encuentra? ¿Cuántas comparaciones se hacen?Búsqueda Secuencial Búsqueda BinariaPosición = 16 Posición = 16Comparaciones = 17 comparaciones = 3En ¿cuál fue el número menor de comparaciones? ¿Por qué?