SlideShare ist ein Scribd-Unternehmen logo
1 von 27
CURSO DE
ALGORITMOS
Docente:
Alma Lucrecia OlivetLópez
Ingeniera en Sistemas
M.A. Liderazgo Organizacional
Candidata Doctorado en Investigación
Docente:
Alma Lucrecia OlivetLópez
Ingeniera en Sistemas
M.A. Liderazgo Organizacional
Candidata Doctorado en Investigación
CURSO DE ALGORITMOS
Conceptos
Introductorios
METODOS DE
ORDENAMIENTO
Introducción
Los 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.
 El 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 debido a 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
Método Burbuja Simple
 La 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.
5 6 1 0 3
Burbuja Mejorada
 Una 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 Optimizada
 Si 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:
50 20 40 80 30
20 50 40 80 30
20 40 50 80 30
20 40 50 80 30
20 40 50 30 80
 Elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable
interruptor para detectar si se ha producido intercambio en la pasada.
 Pasada 0
Intercambio 50 y 20
Intercambio 50 y 40
50 y 80 ordenados
Intercambio 80 y 30
Elemento mayor es
80
interruptor = TRUE
 Pasada 1
20 y 40 ordenados
40 y 50 ordenados
Se intercambian 50 y 30
• 50 y 80 elementos
mayores y ordenados
• interruptor = TRUE
20 40 50 30 80
20 40 50 30 80
20 40 50 30 80
20 40 30 50 80
20 40 30 50 80
20 30 40 50 80
20 30 40 50 80
 Pasada 2.- Solo se hacen dos comparaciones.
20 y 40 ordenados
Se intercambian 40 y 30
interruptor = TRUE
 Pasada 3.- Se hace una única comparación de 20 y 30, y no se produce
intercambio:
20 y 30 ordenados
Lista ordenada
interruptor = FALSE
20 30 40 50 80
Método Selección
Pasada 0.
Seleccionar 21
Intercambiar 21 y
A[0]
51 21 39 80 39
 Los 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
21 51 39 80 36
Pasada 1
Pasada 1.
Seleccionar 36
Intercambiar 36 y
A[1]
21 36 39 80 51
Pasada 2
Pasada 2.
Seleccionar 39
Intercambiar 39 y
A[2]
21 36 39 80 51
Pasada 3
Pasada 3.
Seleccionar 51
Intercambiar 51 y
A[3]
21 36 39 51 80 Lista ordenada
Método Inserción
 El 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.
50 Se comienza por el 50
Procesar 20 5020 Se inserta 20 en la posición 0
50 se mueve a posición 1
Procesar 30
Se inserta 40 en la posición 1
Se mueve 50 a posición 2Procesar 40 20 40 50
Procesar 80 20 40 50 80
El elemento 80 está bien
ordenado
5020 40 8030 Se inserta 30 en posición 1
Se desplaza a la derecha la
sublista derecha
Método Intercambio
 Se 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
4 8 6 2
A[0] A[1] A[2] A[3]
8 4 6 2 Se realiza intercambio
4 8 6 2 No se realiza intercambio
4 8 6 2 Se realiza intercambio
4 8 6 2
2 8 6 4
Lista inicial Lista resultante
6 4
 Pasada 1
A[0] A[1]
2 8
A[2] A[3]
Intercambio 2 6 8 4
2 4 8 62 6 8 4 Intercambio
2 4 8 6 2 4 6 8Intercambio
Lista inicial Lista resultante
Pasada 2
La 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 sublista
Lista inicial
Lista resultante
Método Shell
 El 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, 30
Se 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=5
Empezamos 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, 30
30 , 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, 97
Vamos 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, 97
Ahora a por otro el 21 y el 78
30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
Está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, 97
Que 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, 97
Se ordena (primero los rojos), con el método de inserción:
14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
Finalmente 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, 97
 El 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 BINARIA
 Con 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, la técnica más
sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente.
Búsqueda Secuencial
 Busca 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.
 La 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.
Array
Ejemplo:
publicstatic intsearch(int[ ] arr, intvalor) {
int i = 0;
while (i < arr.length && arr[i] != valor){
i++;
}
if(i< arr.length)
return i+1 ;
else
return-1
}
Búsqueda Binaria
 Si 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úsquedas
Se 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
Posición = 16
Comparaciones = 17
Búsqueda Binaria
Posición = 16
comparaciones = 3
En ¿cuál fue el número menor de comparaciones? ¿Por qué?
Arrays metodos deordenamiento01

Weitere ähnliche Inhalte

Was ist angesagt?

Exposicion Estructuras
Exposicion EstructurasExposicion Estructuras
Exposicion EstructurasAngie Suarez
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientoLalo Chooper
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Sarai Gotopo
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTODaniel Guaycha
 
Despejar ecuaciones en FISICA
Despejar ecuaciones en FISICADespejar ecuaciones en FISICA
Despejar ecuaciones en FISICAEmmanuel Silano
 
Ordenamiento Por MéTodo De InsercióN Binaria
Ordenamiento  Por MéTodo De InsercióN BinariaOrdenamiento  Por MéTodo De InsercióN Binaria
Ordenamiento Por MéTodo De InsercióN BinariaAngie Suarez
 
Despeje de Ecuaciones utilizadas en física
Despeje de Ecuaciones utilizadas en físicaDespeje de Ecuaciones utilizadas en física
Despeje de Ecuaciones utilizadas en físicaHecmy
 
Teoria de la Confiabilidad
Teoria de la ConfiabilidadTeoria de la Confiabilidad
Teoria de la Confiabilidadjonathansb6
 
Presentacion
PresentacionPresentacion
Presentacionmbarcat
 
Sistemas ecuaciones roger o
Sistemas ecuaciones roger oSistemas ecuaciones roger o
Sistemas ecuaciones roger oASIGNACIONUFT
 
Sistema de ecuaciones lineales
Sistema de ecuaciones linealesSistema de ecuaciones lineales
Sistema de ecuaciones linealesgenesisptc_
 
Métodos de eliminación numerica
Métodos de eliminación numericaMétodos de eliminación numerica
Métodos de eliminación numericajose duran
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamientolichic
 
array
arrayarray
arraymario
 
Despeje de fórmulas(1)
Despeje de fórmulas(1)Despeje de fórmulas(1)
Despeje de fórmulas(1)bladimir kappa
 

Was ist angesagt? (20)

Exposicion Estructuras
Exposicion EstructurasExposicion Estructuras
Exposicion Estructuras
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Metodo burbuja C++
Metodo burbuja C++Metodo burbuja C++
Metodo burbuja C++
 
Ordenacion Burbuja
Ordenacion BurbujaOrdenacion Burbuja
Ordenacion Burbuja
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Despejar ecuaciones en FISICA
Despejar ecuaciones en FISICADespejar ecuaciones en FISICA
Despejar ecuaciones en FISICA
 
Ordenamiento Por MéTodo De InsercióN Binaria
Ordenamiento  Por MéTodo De InsercióN BinariaOrdenamiento  Por MéTodo De InsercióN Binaria
Ordenamiento Por MéTodo De InsercióN Binaria
 
Informe aplica 2
Informe aplica 2Informe aplica 2
Informe aplica 2
 
Despeje de Ecuaciones utilizadas en física
Despeje de Ecuaciones utilizadas en físicaDespeje de Ecuaciones utilizadas en física
Despeje de Ecuaciones utilizadas en física
 
Teoria de la Confiabilidad
Teoria de la ConfiabilidadTeoria de la Confiabilidad
Teoria de la Confiabilidad
 
Presentacion
PresentacionPresentacion
Presentacion
 
Sistemas ecuaciones roger o
Sistemas ecuaciones roger oSistemas ecuaciones roger o
Sistemas ecuaciones roger o
 
Sistema de ecuaciones lineales
Sistema de ecuaciones linealesSistema de ecuaciones lineales
Sistema de ecuaciones lineales
 
Métodos de eliminación numerica
Métodos de eliminación numericaMétodos de eliminación numerica
Métodos de eliminación numerica
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
array
arrayarray
array
 
Informe insercion
Informe insercionInforme insercion
Informe insercion
 
Despeje de fórmulas(1)
Despeje de fórmulas(1)Despeje de fórmulas(1)
Despeje de fórmulas(1)
 

Ähnlich wie Arrays metodos deordenamiento01

metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptxLeydiCardona3
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptxFranSilvo
 
Programacion dinamicaaaa
Programacion dinamicaaaaProgramacion dinamicaaaa
Programacion dinamicaaaaJ_cordero
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuelaRomeiker garcia
 
expo de metodos de busqueda.pptx
expo de metodos de busqueda.pptxexpo de metodos de busqueda.pptx
expo de metodos de busqueda.pptxPanlido
 
Solución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones linealesSolución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones linealesRebeca Oropeza Valdez
 
Sistemas de Ecuaciones Lineales.
Sistemas de Ecuaciones Lineales.Sistemas de Ecuaciones Lineales.
Sistemas de Ecuaciones Lineales.christopheradan50
 
Leonardo medina, actividad 3 analisis numerico
Leonardo medina, actividad 3 analisis numericoLeonardo medina, actividad 3 analisis numerico
Leonardo medina, actividad 3 analisis numericoLeonardoljmg
 
Presentacion de programacion 2
Presentacion de programacion 2Presentacion de programacion 2
Presentacion de programacion 2Cori Marcano
 
Métodos de eliminación gaussiana tarea iii
Métodos de eliminación gaussiana tarea iiiMétodos de eliminación gaussiana tarea iii
Métodos de eliminación gaussiana tarea iiiluiguiiiii
 

Ähnlich wie Arrays metodos deordenamiento01 (20)

metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptx
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Presentacion
PresentacionPresentacion
Presentacion
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
 
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptx
 
Programacion dinamicaaaa
Programacion dinamicaaaaProgramacion dinamicaaaa
Programacion dinamicaaaa
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuela
 
expo de metodos de busqueda.pptx
expo de metodos de busqueda.pptxexpo de metodos de busqueda.pptx
expo de metodos de busqueda.pptx
 
MÉTODOS NUMÉRICOS
MÉTODOS NUMÉRICOSMÉTODOS NUMÉRICOS
MÉTODOS NUMÉRICOS
 
Solución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones linealesSolución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones lineales
 
Sistemas de Ecuaciones Lineales.
Sistemas de Ecuaciones Lineales.Sistemas de Ecuaciones Lineales.
Sistemas de Ecuaciones Lineales.
 
Leonardo medina, actividad 3 analisis numerico
Leonardo medina, actividad 3 analisis numericoLeonardo medina, actividad 3 analisis numerico
Leonardo medina, actividad 3 analisis numerico
 
Algebra lineal determinantes
Algebra lineal determinantesAlgebra lineal determinantes
Algebra lineal determinantes
 
Presentacion de programacion 2
Presentacion de programacion 2Presentacion de programacion 2
Presentacion de programacion 2
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Analisis Numerico
Analisis NumericoAnalisis Numerico
Analisis Numerico
 
Métodos de eliminación gaussiana tarea iii
Métodos de eliminación gaussiana tarea iiiMétodos de eliminación gaussiana tarea iii
Métodos de eliminación gaussiana tarea iii
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 

Mehr von Alma Lopez

Unit0 conociendo e-instalandopython
Unit0 conociendo e-instalandopythonUnit0 conociendo e-instalandopython
Unit0 conociendo e-instalandopythonAlma Lopez
 
Progra modulo iii-programacionpython-prgsecuencial_raizcuadratica
Progra modulo iii-programacionpython-prgsecuencial_raizcuadraticaProgra modulo iii-programacionpython-prgsecuencial_raizcuadratica
Progra modulo iii-programacionpython-prgsecuencial_raizcuadraticaAlma Lopez
 
Progra modulo iii-programacionpython-input
Progra modulo iii-programacionpython-inputProgra modulo iii-programacionpython-input
Progra modulo iii-programacionpython-inputAlma Lopez
 
Progra modulo iii-introducciona-python01
Progra modulo iii-introducciona-python01Progra modulo iii-introducciona-python01
Progra modulo iii-introducciona-python01Alma Lopez
 
Progra modulo iii-programacionpython02
Progra modulo iii-programacionpython02Progra modulo iii-programacionpython02
Progra modulo iii-programacionpython02Alma Lopez
 
Progra modulo iii-programacionpython-salidadedatos
Progra modulo iii-programacionpython-salidadedatosProgra modulo iii-programacionpython-salidadedatos
Progra modulo iii-programacionpython-salidadedatosAlma Lopez
 
Progra modulo iii-programacionpython01
Progra modulo iii-programacionpython01Progra modulo iii-programacionpython01
Progra modulo iii-programacionpython01Alma Lopez
 
Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Alma Lopez
 
Algoritmos estructuras repetitivas-ej#2
Algoritmos estructuras repetitivas-ej#2Algoritmos estructuras repetitivas-ej#2
Algoritmos estructuras repetitivas-ej#2Alma Lopez
 
Mi paso2 planteamiento_problema - clase
Mi paso2 planteamiento_problema - claseMi paso2 planteamiento_problema - clase
Mi paso2 planteamiento_problema - claseAlma Lopez
 
Mi paso2 mapas_mentales_clase
Mi paso2 mapas_mentales_claseMi paso2 mapas_mentales_clase
Mi paso2 mapas_mentales_claseAlma Lopez
 
Mi paso2 ejemplo pasos 1 al 3 - clase
Mi paso2 ejemplo pasos 1 al 3 - claseMi paso2 ejemplo pasos 1 al 3 - clase
Mi paso2 ejemplo pasos 1 al 3 - claseAlma Lopez
 
Planteamiento del problema
Planteamiento del problemaPlanteamiento del problema
Planteamiento del problemaAlma Lopez
 
Mi lluvia de_ideas
Mi lluvia de_ideasMi lluvia de_ideas
Mi lluvia de_ideasAlma Lopez
 

Mehr von Alma Lopez (19)

Unit0 conociendo e-instalandopython
Unit0 conociendo e-instalandopythonUnit0 conociendo e-instalandopython
Unit0 conociendo e-instalandopython
 
Progra modulo iii-programacionpython-prgsecuencial_raizcuadratica
Progra modulo iii-programacionpython-prgsecuencial_raizcuadraticaProgra modulo iii-programacionpython-prgsecuencial_raizcuadratica
Progra modulo iii-programacionpython-prgsecuencial_raizcuadratica
 
Progra modulo iii-programacionpython-input
Progra modulo iii-programacionpython-inputProgra modulo iii-programacionpython-input
Progra modulo iii-programacionpython-input
 
Progra modulo iii-introducciona-python01
Progra modulo iii-introducciona-python01Progra modulo iii-introducciona-python01
Progra modulo iii-introducciona-python01
 
Progra modulo iii-programacionpython02
Progra modulo iii-programacionpython02Progra modulo iii-programacionpython02
Progra modulo iii-programacionpython02
 
Progra modulo iii-programacionpython-salidadedatos
Progra modulo iii-programacionpython-salidadedatosProgra modulo iii-programacionpython-salidadedatos
Progra modulo iii-programacionpython-salidadedatos
 
Progra modulo iii-programacionpython01
Progra modulo iii-programacionpython01Progra modulo iii-programacionpython01
Progra modulo iii-programacionpython01
 
6140520
61405206140520
6140520
 
5457551
54575515457551
5457551
 
4042340
40423404042340
4042340
 
155208
155208155208
155208
 
119318
119318119318
119318
 
Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1
 
Algoritmos estructuras repetitivas-ej#2
Algoritmos estructuras repetitivas-ej#2Algoritmos estructuras repetitivas-ej#2
Algoritmos estructuras repetitivas-ej#2
 
Mi paso2 planteamiento_problema - clase
Mi paso2 planteamiento_problema - claseMi paso2 planteamiento_problema - clase
Mi paso2 planteamiento_problema - clase
 
Mi paso2 mapas_mentales_clase
Mi paso2 mapas_mentales_claseMi paso2 mapas_mentales_clase
Mi paso2 mapas_mentales_clase
 
Mi paso2 ejemplo pasos 1 al 3 - clase
Mi paso2 ejemplo pasos 1 al 3 - claseMi paso2 ejemplo pasos 1 al 3 - clase
Mi paso2 ejemplo pasos 1 al 3 - clase
 
Planteamiento del problema
Planteamiento del problemaPlanteamiento del problema
Planteamiento del problema
 
Mi lluvia de_ideas
Mi lluvia de_ideasMi lluvia de_ideas
Mi lluvia de_ideas
 

Kürzlich hochgeladen

LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Kürzlich hochgeladen (20)

LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

Arrays metodos deordenamiento01

  • 1. CURSO DE ALGORITMOS Docente: Alma Lucrecia OlivetLópez Ingeniera en Sistemas M.A. Liderazgo Organizacional Candidata Doctorado en Investigación
  • 2. Docente: Alma Lucrecia OlivetLópez Ingeniera en Sistemas M.A. Liderazgo Organizacional Candidata Doctorado en Investigación CURSO DE ALGORITMOS Conceptos Introductorios METODOS DE ORDENAMIENTO
  • 3. Introducción Los 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.
  • 4.  El 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 debido a 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
  • 5. Método Burbuja Simple  La 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. 5 6 1 0 3
  • 6. Burbuja Mejorada  Una 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).
  • 7. Método Burbuja Optimizada  Si 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.
  • 8. Ejemplo: 50 20 40 80 30 20 50 40 80 30 20 40 50 80 30 20 40 50 80 30 20 40 50 30 80  Elementos (A = 50, 20, 40, 80, 30), donde se introduce una variable interruptor para detectar si se ha producido intercambio en la pasada.  Pasada 0 Intercambio 50 y 20 Intercambio 50 y 40 50 y 80 ordenados Intercambio 80 y 30 Elemento mayor es 80 interruptor = TRUE
  • 9.  Pasada 1 20 y 40 ordenados 40 y 50 ordenados Se intercambian 50 y 30 • 50 y 80 elementos mayores y ordenados • interruptor = TRUE 20 40 50 30 80 20 40 50 30 80 20 40 50 30 80 20 40 30 50 80
  • 10. 20 40 30 50 80 20 30 40 50 80 20 30 40 50 80  Pasada 2.- Solo se hacen dos comparaciones. 20 y 40 ordenados Se intercambian 40 y 30 interruptor = TRUE  Pasada 3.- Se hace una única comparación de 20 y 30, y no se produce intercambio: 20 y 30 ordenados Lista ordenada interruptor = FALSE 20 30 40 50 80
  • 11. Método Selección Pasada 0. Seleccionar 21 Intercambiar 21 y A[0] 51 21 39 80 39  Los 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 21 51 39 80 36 Pasada 1 Pasada 1. Seleccionar 36 Intercambiar 36 y A[1]
  • 12. 21 36 39 80 51 Pasada 2 Pasada 2. Seleccionar 39 Intercambiar 39 y A[2] 21 36 39 80 51 Pasada 3 Pasada 3. Seleccionar 51 Intercambiar 51 y A[3] 21 36 39 51 80 Lista ordenada
  • 13. Método Inserción  El 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. 50 Se comienza por el 50 Procesar 20 5020 Se inserta 20 en la posición 0 50 se mueve a posición 1 Procesar 30 Se inserta 40 en la posición 1 Se mueve 50 a posición 2Procesar 40 20 40 50 Procesar 80 20 40 50 80 El elemento 80 está bien ordenado 5020 40 8030 Se inserta 30 en posición 1 Se desplaza a la derecha la sublista derecha
  • 14. Método Intercambio  Se 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 4 8 6 2 A[0] A[1] A[2] A[3] 8 4 6 2 Se realiza intercambio 4 8 6 2 No se realiza intercambio 4 8 6 2 Se realiza intercambio 4 8 6 2 2 8 6 4 Lista inicial Lista resultante
  • 15. 6 4  Pasada 1 A[0] A[1] 2 8 A[2] A[3] Intercambio 2 6 8 4 2 4 8 62 6 8 4 Intercambio 2 4 8 6 2 4 6 8Intercambio Lista inicial Lista resultante Pasada 2 La 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 sublista Lista inicial Lista resultante
  • 16. Método Shell  El 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.
  • 17. Ejemplo: 74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30 Se 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=5 Empezamos 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
  • 18. Ahora, ordenaremos los elementos del sub-arreglo (rojo) pero sólo entre ellos, utilizando el algoritmo de Inserción directa. 74, 97, 30 30 , 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, 97 Vamos a ordenarlos el 11 primero y el 14 después. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
  • 19. 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97 Ahora a por otro el 21 y el 78 30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97 Está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, 97 Que 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
  • 20. 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, 97 Se ordena (primero los rojos), con el método de inserción: 14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97 Finalmente ordenamos los negros, pero estos ya están ordenados: 14 , 11 , 21, 44, 30, 74 , 38 , 78, 65, 88, 97
  • 21.  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, 97  El 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.
  • 22. BÚSQUEDA EN LISTAS: BÚSQUEDAS SECUENCIAL Y BINARIA  Con 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, la técnica más sencilla, y búsqueda binaria o dicotómica, la técnica más eficiente.
  • 23. Búsqueda Secuencial  Busca 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.  La 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. Array
  • 24. Ejemplo: publicstatic intsearch(int[ ] arr, intvalor) { int i = 0; while (i < arr.length && arr[i] != valor){ i++; } if(i< arr.length) return i+1 ; else return-1 }
  • 25. Búsqueda Binaria  Si 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.
  • 26. Ejemplo de Búsquedas Se 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 Posición = 16 Comparaciones = 17 Búsqueda Binaria Posición = 16 comparaciones = 3 En ¿cuál fue el número menor de comparaciones? ¿Por qué?