SlideShare ist ein Scribd-Unternehmen logo
1 von 12
DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA 
INSTITUTO TECNOLÓGICO DE SALINA CRUZ 
MATERIA 
ESTRUCTURA Y ORGANIZACIÓN DE DATOS 
TEMA 
ACTIVIDAD 1 UNIDAD 4 
TRABAJO: 
INVESTIGAR LOS DIVERSOS ALGORITMOS DE LOS MÉTODOS DE 
ORDENAMIENTO, BÚSQUEDA Y RECUPERACIÓN DE DATOS 
PROFESORA 
SUSANA MONICA ROMAN NAJERA 
ALUMNO 
JOSE MANUEL FLORES RAMOS 
CARRERA 
ING. EN TIC´S 
SEMESTRE 
3 E3
INTRODUCCION 
Los algoritmos de ordenamiento nos permiten, ordenar vectores o 
matrices con valores asignados aleatoriamente. Nos centraremos 
en los métodos más populares, analizando la cantidad de 
comparaciones que suceden, el tiempo que demora y revisando el 
código, escrito en Java, de cada algoritmo. 
Esta investigación nos permitirá conocer más a fondo cada 
método distinto de ordenamiento, desde uno simple hasta el más 
complejo. Se realizaran comparaciones en tiempo de ejecución, 
pre-requisitos de cada algoritmo, funcionalidad, alcance, etc.
METODOS DE ORDENAMIENTO [JAVA] 
¿Qué es ordenamiento? 
Es la operación de arreglar los registros de una tabla en algún orden secuencial de 
acuerdo a un criterio de ordenamiento. 
El ordenamiento se efectúa con base en el valor de algún campo en un registro. 
El propósito principal de un ordenamiento es el de facilitar las búsquedas de los 
miembros del conjunto ordenado. 
Ej. De ordenamientos: 
Dir. Telefónico, tablas de contenido, bibliotecas y diccionarios, etc. 
El ordenar un grupo de datos significa mover los datos o sus referencias para que 
queden en una secuencia tal que represente un orden, el cual puede ser 
numérico, alfabético o incluso alfanumérico, ascendente o descendente. 
Cuándo conviene usar un método de ordenamiento? 
Cuando se requiere hacer una cantidad considerable de búsquedas y es 
importante el factor tiempo. 
Tipos de ordenamientos: 
Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los 
externos. 
 Los internos: Son aquellos en los que los valores a ordenar están en 
memoria principal, por lo que se asume que el tiempo que se requiere para 
acceder cualquier elemento sea el mismo (a [1], a [500], etc.). 
 Los externos: Son aquellos en los que los valores a ordenar están en 
memoria secundaria (disco, cinta, cilindro magnético, etc.), por lo que se 
asume que el tiempo que se requiere para acceder a cualquier elemento 
depende de la última posición accesada (posición 1, posición 500, etc.). 
Eficiencia en tiempo de ejecución:
Una medida de eficiencia es: 
Contar el # de comparaciones (C) 
Contar el # de movimientos de items (M) 
Estos están en función del #(n) de items a ser ordenados. 
Un "buen algoritmo" de ordenamiento requiere de un orden nlogn comparaciones. 
La eficiencia de los algoritmos se mide por el número de comparaciones e 
intercambios que tienen que hacer, es decir, se toma n como el número de 
elementos que tiene el arreglo o vector a ordenar y se dice que un algoritmo 
realiza O(n2) comparaciones cuando compara n veces los n elementos, n x n = n2 
Algoritmos de ordenamiento: 
Internos: 
1. Inserción directa. 
2. Inserción binaria. 
3. Inserción directa. 
1. Selección directa. 
2. Selección directa. 
1. Burbuja. 
4. Intercambio directo. 
1. Shell. 
5. Inserción disminución incremental. 
1. Heap. 
2. Tournament. 
6. Ordenamiento de árbol. 
1. Quick sort. 
Clasificación de los algoritmos de ordenamiento de información: 
El hecho de que la información está ordenada, nos sirve para poder encontrarla y 
accesarla de manera más eficiente ya que de lo contrario se tendría que hacer de 
manera secuencial.
A continuación se describirán 4 grupos de algoritmos para ordenar información: 
Algoritmos de inserción: 
En este tipo de algoritmo los elementos que van a ser ordenados son 
considerados uno a la vez. Cada elemento es INSERTADO en la posición 
apropiada con respecto al resto de los elementos ya ordenados. 
Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT, 
INSERCION BINARIA y HASHING. 
Algoritmos de intercambio: 
En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y 
se INTERCAMBIAN si no están en el orden adecuado. Este proceso se repite 
hasta que se ha analizado todo el conjunto de elementos y ya no hay 
intercambios. 
Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT. 
Algoritmos de selección: 
En este tipo de algoritmos se SELECCIONA o se busca el elemento más pequeño 
(o más grande) de todo el conjunto de elementos y se coloca en su posición 
adecuada. Este proceso se repite para el resto de los elementos hasta que todos 
son analizados. 
Entre estos algoritmos se encuentra el de SELECCION DIRECTA. 
Algoritmos de enumeración: 
En este tipo de algoritmos cada elemento es comparado contra los demás. En la 
comparación se cuenta cuántos elementos son más pequeños que el elemento 
que se está analizando, generando así una ENUMERACION. El número generado 
para cada elemento indicará su posición. 
Los métodos simples son: Inserción (o por inserción directa), selección, burbuja y 
Shell, en dónde el último es una extensión al método de inserción, siendo más 
rápido. Los métodos más complejos son el quick-sort (ordenación rápida) y el 
heap sort. 
A continuación se mostrarán los métodos de ordenamiento más simples. 
METODO DE INSERCIÓN. 
Este método toma cada elemento del arreglo para ser ordenado y lo compara con 
los que se encuentran en posiciones anteriores a la de él dentro del arreglo. Si 
resulta que el elemento con el que se está comparando es mayor que el elemento 
a ordenar, se recorre hacia la siguiente posición superior. Si por el contrario,
resulta que el elemento con el que se está comparando es menor que el elemento 
a ordenar, se detiene el proceso de comparación pues se encontró que el 
elemento ya está ordenado y se coloca en su posición (que es la siguiente a la del 
último número con el que se comparó). 
Procedimiento Insertion Sort 
Este procedimiento recibe el arreglo de datos a ordenar a [] y altera las posiciones 
de sus elementos hasta dejarlos ordenados de menor a mayor. N representa el 
número de elementos que contiene a []. 
Paso 1: [Para cada pos. del arreglo] For i <- 2 to N do 
Paso 2: [Inicializa v y j] v <- a[i] 
j <- i. 
Paso 3: [Compara v con los anteriores] While a[j-1] > v AND j>1 do 
Paso 4: [Recorre los datos mayores] Set a[j] <- a[j-1], 
Paso 5: [Decremento j] set j <- j-1. 
Paso 5: [Inserta v en su posición] Set a[j] <- v. 
Paso 6: [Fin] End. 
Ejemplo: 
Si el arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e'], el algoritmo 
va a recorrer el arreglo de izquierda a derecha. Primero toma el segundo dato 's' y 
lo asigna a v y i toma el valor de la posición actual de v. 
Luego compara esta 's' con lo que hay en la posición j-1, es decir, con 'a'. Debido 
a que 's' no es menor que 'a' no sucede nada y avanza i. 
Ahora v toma el valor 'o' y lo compara con 's', como es menor recorre a la 's' a la 
posición de la 'o'; decremento j, la cual ahora tiene la posición en dónde estaba la 
's'; compara a 'o' con a [j-1], es decir, con 'a'. Como no es menor que la 'a' sale del 
for y pone la 'o' en la posición a[j]. El resultado hasta este punto es el arreglo 
siguiente: a = ['a','o','s','r',....] 
Así se continúa y el resultado final es el arreglo ordenado: 
a = ['a','a','e','e','g','i','l','m','n','o','p','r','s','t','x'] 
MÉTODO DE SELECCIÓN. 
El método de ordenamiento por selección consiste en encontrar el menor de todos 
los elementos del arreglo e intercambiarlo con el que está en la primera posición.
Luego el segundo más pequeño, y así sucesivamente hasta ordenar todo el 
arreglo. 
Procedimiento Selection Sort 
Paso 1: [Para cada pos. del arreglo] For i <- 1 to N do 
Paso 2: [Inicializa la pos. del menor] menor <- i 
Paso 3: [Recorre todo el arreglo] For j <- i+1 to N do 
paso 4: [Si a[j] es menor] If a[j] <> 
paso 5: [Reasigna el apuntador al menor] min = j 
Paso 6: [Intercambia los datos de la pos. 
min y posición i] Swap(a, min, j). 
Paso 7: [Fin] End. 
Ejemplo: 
El arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e']. 
Se empieza por recorrer el arreglo hasta encontrar el menor elemento. En este 
caso el menor elemento es la primera 'a'. De manera que no ocurre ningún 
cambio. Luego se procede a buscar el siguiente elemento y se encuentra la 
segunda 'a'. 
Esta se intercambia con el dato que está en la segunda posición, la 's', quedando 
el arreglo así después de dos recorridos: a = 
['a','a','o','r','t','i','n','g','e','x','s','m','p','l','e']. 
El siguiente elemento, el tercero en orden de menor mayor es la primera 'e', la cual 
se intercambia con lo que está en la tercera posición, o sea, la 'o'. Le sigue la 
segunda 's', la cual es intercambiada con la 'r'. 
El arreglo ahora se ve de la siguiente manera: a = 
['a','a','e','e','t','i','n','g','o','x','s','m','p','l','r']. 
De esta manera se va buscando el elemento que debe ir en la siguiente posición 
hasta ordenar todo el arreglo. 
El número de comparaciones que realiza este algoritmo es: 
Para el primer elemento se comparan n-1 datos, en general para el elemento i-ésimo 
se hacen n-i comparaciones, por lo tanto, el total de comparaciones es: 
la sumatoria para i de 1 a n-1 (n-i) = 1/2 n (n-1).
METODOS ITERATIVOS 
Estos métodos son simples de entender y de programar ya que son iterativos, 
simples ciclos y sentencias que hacen que el vector pueda ser ordenado. 
Dentro de los Algoritmos iterativos encontramos: 
 · Burbuja 
 · Inserción 
 · Selección 
 · Shellsort 
METODOS RECURSIVOS 
Estos métodos son aún más complejos, requieren de mayor atención y 
conocimiento para ser entendidos. Son rápidos y efectivos, utilizan generalmente 
la técnica Divide y vencerás, que consiste en dividir un problema grande en varios 
pequeños para que sea más fácil resolverlos. 
Mediante llamadas recursivas a sí mismas, es posible que el tiempo de ejecución 
y de ordenación sea más óptimo. 
Dentó de los algoritmos recursivos encontramos: 
 Ordenamiento por Mezclas (merge) 
 Ordenamiento Rápido (quick) 
METODO BURBUJA 
Public static void burbuja (int [] matrix) { 
Int temp; 
for (int i=1; i < matrix. Length; i++) { 
for (int j=0; j < matrix. Length- 1; j++) { 
if (matrix[j] > matrix [j+1]) { 
temp = matrix[j]; 
matrix[j] = matrix [j+1]; 
matrix [j+1] = temp; 
} 
} 
} 
}
METODO INSERCION 
public static void Insercion (int[] vector) { 
for (int i=1; i < vector.length; i++) { 
int aux = vector[i]; 
int j; 
for (j=i-1; j > =0 && vector[j] > aux; j--){ 
vector[j+1] = vector[j]; 
} 
vector[j+1] = aux; 
} 
} 
METODO SELECCIÓN 
public static void Seleccion(int[]matrix){ 
int i, j, k, p, buffer, limit = matrix.length-1; 
for(k = 0; k < limit; k++){ 
p = k; 
for(i = k+1; i < = limit; i++){ 
if(matrix[i] < matrix[p]) p = i; 
if(p != k){ 
buffer = matrix[p]; 
matrix[p] = matrix[k]; 
matrix[k] = buffer; 
} 
} 
} 
} 
METODO SHELL SHORT 
public static void shellSort(int[] matrix) { 
for ( int increment = matrix.length / 2;increment > 0; 
increment = (increment == 2 ? 1 : (int) Math.round(increment / 
2.2))) { 
for (int i = increment; i < matrix.length; i++) { 
for (int j = i; j > = increment && matrix[j - increment] > 
matrix[j]; j -= increment) { 
int temp = matrix[j]; 
matrix[j] = matrix[j - increment]; 
matrix[j - increment] = temp; 
} 
} 
}}
ORDENAMIENTO POR MEZCLAS (MERGE) 
El algoritmo de ordenamiento por mezcla (Merge) se divide en dos procesos, primero 
se divide en partes iguales la lista: 
public static void mergesort(int[ ] matrix, int init, int n){ 
int n1; 
int n2; 
if (n > 1){ 
n1 = n / 2; 
n2 = n - n1; 
mergesort(matrix, init, n1); 
mergesort(matrix, init + n1, n2); 
merge(matrix, init, n1, n2); 
} 
} 
Y el algoritmo que nos permite mezclar los elementos según corresponda: 
private static void merge(int[ ] matrix, int init, int n1, int n2){ 
int[ ] buffer = new int[n1+n2]; 
int temp = 0; 
int temp1 = 0; 
int temp2 = 0; 
int i; 
while ((temp1 < n1) && (temp2 < n2)){ 
if (matrix[init + temp1] < matrix[init + n1 + temp2]){ 
buffer[temp++] = matrix[init + (temp1++)]; 
}else{ 
buffer[temp++] = matrix[init + n1 + (temp2++)]; 
} 
} 
while (temp1 < n1){ 
buffer[temp++] = matrix[init + (temp1++)]; 
} 
while (temp2 < n2){ 
buffer[temp++] = matrix[init + n1 + (temp2++)]; 
} 
for (i = 0; i < n1+n2; i++){ 
matrix[init + i] = buffer[i]; 
} 
} 
ORDENAMIENTO RAPIDO 
public static void Rapido(int matrix[], int a, int b){ 
matrix = new int[matrix.length]; 
int buf; 
int from = a; 
int to = b; 
int pivot = matrix[(from+to)/2]; 
do{
while(matrix[from] < pivot){ 
from++; 
} 
while(matrix[to] > pivot){ 
to--; 
} 
if(from < = to){ 
buf = matrix[from]; 
matrix[from] = matrix[to]; 
matrix[to] = buf; 
from++; to--; 
} 
}while(from < = to); 
if(a < to){ 
Rapido(matrix, a, to); 
} 
if(from < b){ 
Rapido(matrix, from, b); 
} 
} 
COMPLEJIDAD 
Cada algoritmo de ordenamiento por definición tiene operaciones y cálculos mínimos y 
máximos que realiza (complejidad), a continuación una tabla que indica la cantidad de 
cálculos que corresponden a cada método de ordenamiento: 
Algoritmo Operaciones máximas 
Burbuja Ω(n2) 
Inserción Ω(n2/4) 
Selección Ω(n2) 
Shell Ω(n log2n) 
Merge Ω(n logn) 
Quick Ω(n2) en peor de los casos y Ω(n logn) en el 
promedio de los casos.
OTRAS FUENTES CONSULTADAS 
 Capítulo 21: Métodos de ordenamiento y búsqueda. De: 
http://www.mailxmail.com/curso-aprende-programar/metodos-ordenamiento-busqueda 
 Algoritmos de búsqueda, de: 
http://html.rincondelvago.com/algoritmos-de-busqueda.html 
 Binary Search Illustrating Divide and Conquer, de: 
http://www.animal.ahrgr.de/showAnimationDetails.php3?anim=4 
www.monografias.com 
 Trabajos sobre métodos ordenamiento, de 
www.rincondelvago.com

Weitere ähnliche Inhalte

Was ist angesagt?

Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
linkinpark03
 
Método de ordenamiento por selección
Método de ordenamiento por selecciónMétodo de ordenamiento por selección
Método de ordenamiento por selección
figocancun
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Monica Canaza
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
Javier Alvarez
 
Insercion directa
Insercion directaInsercion directa
Insercion directa
abelpit2
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Orlando Torres
 

Was ist angesagt? (20)

Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Método de ordenamiento por selección
Método de ordenamiento por selecciónMétodo de ordenamiento por selección
Método de ordenamiento por selección
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Ordenamiento ppt
Ordenamiento pptOrdenamiento ppt
Ordenamiento ppt
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda Binaria
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
 
Comparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de OrdenamientoComparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de Ordenamiento
 
Insercion directa
Insercion directaInsercion directa
Insercion directa
 
Ordenamiento por seleccion
Ordenamiento por seleccionOrdenamiento por seleccion
Ordenamiento por seleccion
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Analisis busqueda binaria y secuencia
Analisis busqueda binaria y secuencia Analisis busqueda binaria y secuencia
Analisis busqueda binaria y secuencia
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Tema5
Tema5Tema5
Tema5
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 

Andere mochten auch

Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 Excepciones
Andoni Eguíluz Morán
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
K Manuel TN
 
Java excepciones
Java excepcionesJava excepciones
Java excepciones
ricardo_79
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
jent46
 

Andere mochten auch (15)

Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 Excepciones
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
 
Tecnicas y extensiones para Java de tiempo real
Tecnicas y extensiones para Java de tiempo realTecnicas y extensiones para Java de tiempo real
Tecnicas y extensiones para Java de tiempo real
 
Gestión de excepciones en java
Gestión de excepciones en javaGestión de excepciones en java
Gestión de excepciones en java
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Java
 
Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en Java
 
Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 

Ähnlich wie Josemanueunidad4 investigacionmetodos

Estructura de dato unidad 5
Estructura de dato unidad 5Estructura de dato unidad 5
Estructura de dato unidad 5
lenithoz
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
lichic
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
VivianaG
 

Ähnlich wie Josemanueunidad4 investigacionmetodos (20)

metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Estructura de dato unidad 5
Estructura de dato unidad 5Estructura de dato unidad 5
Estructura de dato unidad 5
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datos
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
E7 ensayo-ordenacion
E7 ensayo-ordenacionE7 ensayo-ordenacion
E7 ensayo-ordenacion
 
Presentacion
PresentacionPresentacion
Presentacion
 
Metodo burbuja C++
Metodo burbuja C++Metodo burbuja C++
Metodo burbuja C++
 
Presentacion recursividad
Presentacion recursividadPresentacion recursividad
Presentacion recursividad
 
Arreglos enitmar
Arreglos enitmarArreglos enitmar
Arreglos enitmar
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Algebra morelys lugo2
Algebra morelys lugo2Algebra morelys lugo2
Algebra morelys lugo2
 
Informe insercion
Informe insercionInforme insercion
Informe insercion
 

Mehr von K Manuel TN

Ejemplos de estructura de control semestre 2
Ejemplos de estructura de control semestre 2Ejemplos de estructura de control semestre 2
Ejemplos de estructura de control semestre 2
K Manuel TN
 
Operadores ejemplos semestre 2
Operadores ejemplos semestre 2Operadores ejemplos semestre 2
Operadores ejemplos semestre 2
K Manuel TN
 
Comentarios semestre 2
Comentarios semestre 2Comentarios semestre 2
Comentarios semestre 2
K Manuel TN
 
Mapa conceptual estructuras de control SEMESTRE 2
Mapa conceptual estructuras de control SEMESTRE 2Mapa conceptual estructuras de control SEMESTRE 2
Mapa conceptual estructuras de control SEMESTRE 2
K Manuel TN
 

Mehr von K Manuel TN (20)

Pilas
PilasPilas
Pilas
 
Josemanueunidad4 mapaconceptual
Josemanueunidad4 mapaconceptualJosemanueunidad4 mapaconceptual
Josemanueunidad4 mapaconceptual
 
Josemauelunidad3 triangulodepascal
Josemauelunidad3 triangulodepascalJosemauelunidad3 triangulodepascal
Josemauelunidad3 triangulodepascal
 
Josemauelunidad3 torresdehanoi
Josemauelunidad3 torresdehanoiJosemauelunidad3 torresdehanoi
Josemauelunidad3 torresdehanoi
 
Josemauelunidad3 seriedefibonacci
Josemauelunidad3 seriedefibonacciJosemauelunidad3 seriedefibonacci
Josemauelunidad3 seriedefibonacci
 
Josemauelunidad3 operacionesaritmeticasconrecursividad
Josemauelunidad3 operacionesaritmeticasconrecursividadJosemauelunidad3 operacionesaritmeticasconrecursividad
Josemauelunidad3 operacionesaritmeticasconrecursividad
 
Josemauelunidad3 recursividad
Josemauelunidad3 recursividadJosemauelunidad3 recursividad
Josemauelunidad3 recursividad
 
Josemauelunidad3 elproductode2numrs
Josemauelunidad3 elproductode2numrsJosemauelunidad3 elproductode2numrs
Josemauelunidad3 elproductode2numrs
 
Josè manuel practica 3.3 comentar y corregir
Josè manuel practica 3.3 comentar y corregirJosè manuel practica 3.3 comentar y corregir
Josè manuel practica 3.3 comentar y corregir
 
José manuel practica 1 de la unidad 2 creacion de un array list
José manuel practica 1 de la unidad 2 creacion de un array listJosé manuel practica 1 de la unidad 2 creacion de un array list
José manuel practica 1 de la unidad 2 creacion de un array list
 
Jose manuel activida 2, unidad 2 listas simples
Jose manuel activida 2, unidad 2 listas simplesJose manuel activida 2, unidad 2 listas simples
Jose manuel activida 2, unidad 2 listas simples
 
Josè manuel practica 3 5 operaciones con arreglos
Josè manuel practica 3 5 operaciones con arreglosJosè manuel practica 3 5 operaciones con arreglos
Josè manuel practica 3 5 operaciones con arreglos
 
José manuel practica 2 de arreglos con meses
José manuel practica 2 de arreglos con mesesJosé manuel practica 2 de arreglos con meses
José manuel practica 2 de arreglos con meses
 
Jose manuel mapa conceptual unidad 1
Jose manuel mapa conceptual unidad 1Jose manuel mapa conceptual unidad 1
Jose manuel mapa conceptual unidad 1
 
Jose manuel cuadro comparativo unidad 1
Jose manuel cuadro comparativo unidad 1Jose manuel cuadro comparativo unidad 1
Jose manuel cuadro comparativo unidad 1
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Ejemplos de estructura de control semestre 2
Ejemplos de estructura de control semestre 2Ejemplos de estructura de control semestre 2
Ejemplos de estructura de control semestre 2
 
Operadores ejemplos semestre 2
Operadores ejemplos semestre 2Operadores ejemplos semestre 2
Operadores ejemplos semestre 2
 
Comentarios semestre 2
Comentarios semestre 2Comentarios semestre 2
Comentarios semestre 2
 
Mapa conceptual estructuras de control SEMESTRE 2
Mapa conceptual estructuras de control SEMESTRE 2Mapa conceptual estructuras de control SEMESTRE 2
Mapa conceptual estructuras de control SEMESTRE 2
 

Kürzlich hochgeladen

TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
pvtablets2023
 

Kürzlich hochgeladen (20)

TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 

Josemanueunidad4 investigacionmetodos

  • 1. DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE SALINA CRUZ MATERIA ESTRUCTURA Y ORGANIZACIÓN DE DATOS TEMA ACTIVIDAD 1 UNIDAD 4 TRABAJO: INVESTIGAR LOS DIVERSOS ALGORITMOS DE LOS MÉTODOS DE ORDENAMIENTO, BÚSQUEDA Y RECUPERACIÓN DE DATOS PROFESORA SUSANA MONICA ROMAN NAJERA ALUMNO JOSE MANUEL FLORES RAMOS CARRERA ING. EN TIC´S SEMESTRE 3 E3
  • 2. INTRODUCCION Los algoritmos de ordenamiento nos permiten, ordenar vectores o matrices con valores asignados aleatoriamente. Nos centraremos en los métodos más populares, analizando la cantidad de comparaciones que suceden, el tiempo que demora y revisando el código, escrito en Java, de cada algoritmo. Esta investigación nos permitirá conocer más a fondo cada método distinto de ordenamiento, desde uno simple hasta el más complejo. Se realizaran comparaciones en tiempo de ejecución, pre-requisitos de cada algoritmo, funcionalidad, alcance, etc.
  • 3. METODOS DE ORDENAMIENTO [JAVA] ¿Qué es ordenamiento? Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efectúa con base en el valor de algún campo en un registro. El propósito principal de un ordenamiento es el de facilitar las búsquedas de los miembros del conjunto ordenado. Ej. De ordenamientos: Dir. Telefónico, tablas de contenido, bibliotecas y diccionarios, etc. El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una secuencia tal que represente un orden, el cual puede ser numérico, alfabético o incluso alfanumérico, ascendente o descendente. Cuándo conviene usar un método de ordenamiento? Cuando se requiere hacer una cantidad considerable de búsquedas y es importante el factor tiempo. Tipos de ordenamientos: Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.  Los internos: Son aquellos en los que los valores a ordenar están en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a [1], a [500], etc.).  Los externos: Son aquellos en los que los valores a ordenar están en memoria secundaria (disco, cinta, cilindro magnético, etc.), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accesada (posición 1, posición 500, etc.). Eficiencia en tiempo de ejecución:
  • 4. Una medida de eficiencia es: Contar el # de comparaciones (C) Contar el # de movimientos de items (M) Estos están en función del #(n) de items a ser ordenados. Un "buen algoritmo" de ordenamiento requiere de un orden nlogn comparaciones. La eficiencia de los algoritmos se mide por el número de comparaciones e intercambios que tienen que hacer, es decir, se toma n como el número de elementos que tiene el arreglo o vector a ordenar y se dice que un algoritmo realiza O(n2) comparaciones cuando compara n veces los n elementos, n x n = n2 Algoritmos de ordenamiento: Internos: 1. Inserción directa. 2. Inserción binaria. 3. Inserción directa. 1. Selección directa. 2. Selección directa. 1. Burbuja. 4. Intercambio directo. 1. Shell. 5. Inserción disminución incremental. 1. Heap. 2. Tournament. 6. Ordenamiento de árbol. 1. Quick sort. Clasificación de los algoritmos de ordenamiento de información: El hecho de que la información está ordenada, nos sirve para poder encontrarla y accesarla de manera más eficiente ya que de lo contrario se tendría que hacer de manera secuencial.
  • 5. A continuación se describirán 4 grupos de algoritmos para ordenar información: Algoritmos de inserción: En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada elemento es INSERTADO en la posición apropiada con respecto al resto de los elementos ya ordenados. Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT, INSERCION BINARIA y HASHING. Algoritmos de intercambio: En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y se INTERCAMBIAN si no están en el orden adecuado. Este proceso se repite hasta que se ha analizado todo el conjunto de elementos y ya no hay intercambios. Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT. Algoritmos de selección: En este tipo de algoritmos se SELECCIONA o se busca el elemento más pequeño (o más grande) de todo el conjunto de elementos y se coloca en su posición adecuada. Este proceso se repite para el resto de los elementos hasta que todos son analizados. Entre estos algoritmos se encuentra el de SELECCION DIRECTA. Algoritmos de enumeración: En este tipo de algoritmos cada elemento es comparado contra los demás. En la comparación se cuenta cuántos elementos son más pequeños que el elemento que se está analizando, generando así una ENUMERACION. El número generado para cada elemento indicará su posición. Los métodos simples son: Inserción (o por inserción directa), selección, burbuja y Shell, en dónde el último es una extensión al método de inserción, siendo más rápido. Los métodos más complejos son el quick-sort (ordenación rápida) y el heap sort. A continuación se mostrarán los métodos de ordenamiento más simples. METODO DE INSERCIÓN. Este método toma cada elemento del arreglo para ser ordenado y lo compara con los que se encuentran en posiciones anteriores a la de él dentro del arreglo. Si resulta que el elemento con el que se está comparando es mayor que el elemento a ordenar, se recorre hacia la siguiente posición superior. Si por el contrario,
  • 6. resulta que el elemento con el que se está comparando es menor que el elemento a ordenar, se detiene el proceso de comparación pues se encontró que el elemento ya está ordenado y se coloca en su posición (que es la siguiente a la del último número con el que se comparó). Procedimiento Insertion Sort Este procedimiento recibe el arreglo de datos a ordenar a [] y altera las posiciones de sus elementos hasta dejarlos ordenados de menor a mayor. N representa el número de elementos que contiene a []. Paso 1: [Para cada pos. del arreglo] For i <- 2 to N do Paso 2: [Inicializa v y j] v <- a[i] j <- i. Paso 3: [Compara v con los anteriores] While a[j-1] > v AND j>1 do Paso 4: [Recorre los datos mayores] Set a[j] <- a[j-1], Paso 5: [Decremento j] set j <- j-1. Paso 5: [Inserta v en su posición] Set a[j] <- v. Paso 6: [Fin] End. Ejemplo: Si el arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e'], el algoritmo va a recorrer el arreglo de izquierda a derecha. Primero toma el segundo dato 's' y lo asigna a v y i toma el valor de la posición actual de v. Luego compara esta 's' con lo que hay en la posición j-1, es decir, con 'a'. Debido a que 's' no es menor que 'a' no sucede nada y avanza i. Ahora v toma el valor 'o' y lo compara con 's', como es menor recorre a la 's' a la posición de la 'o'; decremento j, la cual ahora tiene la posición en dónde estaba la 's'; compara a 'o' con a [j-1], es decir, con 'a'. Como no es menor que la 'a' sale del for y pone la 'o' en la posición a[j]. El resultado hasta este punto es el arreglo siguiente: a = ['a','o','s','r',....] Así se continúa y el resultado final es el arreglo ordenado: a = ['a','a','e','e','g','i','l','m','n','o','p','r','s','t','x'] MÉTODO DE SELECCIÓN. El método de ordenamiento por selección consiste en encontrar el menor de todos los elementos del arreglo e intercambiarlo con el que está en la primera posición.
  • 7. Luego el segundo más pequeño, y así sucesivamente hasta ordenar todo el arreglo. Procedimiento Selection Sort Paso 1: [Para cada pos. del arreglo] For i <- 1 to N do Paso 2: [Inicializa la pos. del menor] menor <- i Paso 3: [Recorre todo el arreglo] For j <- i+1 to N do paso 4: [Si a[j] es menor] If a[j] <> paso 5: [Reasigna el apuntador al menor] min = j Paso 6: [Intercambia los datos de la pos. min y posición i] Swap(a, min, j). Paso 7: [Fin] End. Ejemplo: El arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e']. Se empieza por recorrer el arreglo hasta encontrar el menor elemento. En este caso el menor elemento es la primera 'a'. De manera que no ocurre ningún cambio. Luego se procede a buscar el siguiente elemento y se encuentra la segunda 'a'. Esta se intercambia con el dato que está en la segunda posición, la 's', quedando el arreglo así después de dos recorridos: a = ['a','a','o','r','t','i','n','g','e','x','s','m','p','l','e']. El siguiente elemento, el tercero en orden de menor mayor es la primera 'e', la cual se intercambia con lo que está en la tercera posición, o sea, la 'o'. Le sigue la segunda 's', la cual es intercambiada con la 'r'. El arreglo ahora se ve de la siguiente manera: a = ['a','a','e','e','t','i','n','g','o','x','s','m','p','l','r']. De esta manera se va buscando el elemento que debe ir en la siguiente posición hasta ordenar todo el arreglo. El número de comparaciones que realiza este algoritmo es: Para el primer elemento se comparan n-1 datos, en general para el elemento i-ésimo se hacen n-i comparaciones, por lo tanto, el total de comparaciones es: la sumatoria para i de 1 a n-1 (n-i) = 1/2 n (n-1).
  • 8. METODOS ITERATIVOS Estos métodos son simples de entender y de programar ya que son iterativos, simples ciclos y sentencias que hacen que el vector pueda ser ordenado. Dentro de los Algoritmos iterativos encontramos:  · Burbuja  · Inserción  · Selección  · Shellsort METODOS RECURSIVOS Estos métodos son aún más complejos, requieren de mayor atención y conocimiento para ser entendidos. Son rápidos y efectivos, utilizan generalmente la técnica Divide y vencerás, que consiste en dividir un problema grande en varios pequeños para que sea más fácil resolverlos. Mediante llamadas recursivas a sí mismas, es posible que el tiempo de ejecución y de ordenación sea más óptimo. Dentó de los algoritmos recursivos encontramos:  Ordenamiento por Mezclas (merge)  Ordenamiento Rápido (quick) METODO BURBUJA Public static void burbuja (int [] matrix) { Int temp; for (int i=1; i < matrix. Length; i++) { for (int j=0; j < matrix. Length- 1; j++) { if (matrix[j] > matrix [j+1]) { temp = matrix[j]; matrix[j] = matrix [j+1]; matrix [j+1] = temp; } } } }
  • 9. METODO INSERCION public static void Insercion (int[] vector) { for (int i=1; i < vector.length; i++) { int aux = vector[i]; int j; for (j=i-1; j > =0 && vector[j] > aux; j--){ vector[j+1] = vector[j]; } vector[j+1] = aux; } } METODO SELECCIÓN public static void Seleccion(int[]matrix){ int i, j, k, p, buffer, limit = matrix.length-1; for(k = 0; k < limit; k++){ p = k; for(i = k+1; i < = limit; i++){ if(matrix[i] < matrix[p]) p = i; if(p != k){ buffer = matrix[p]; matrix[p] = matrix[k]; matrix[k] = buffer; } } } } METODO SHELL SHORT public static void shellSort(int[] matrix) { for ( int increment = matrix.length / 2;increment > 0; increment = (increment == 2 ? 1 : (int) Math.round(increment / 2.2))) { for (int i = increment; i < matrix.length; i++) { for (int j = i; j > = increment && matrix[j - increment] > matrix[j]; j -= increment) { int temp = matrix[j]; matrix[j] = matrix[j - increment]; matrix[j - increment] = temp; } } }}
  • 10. ORDENAMIENTO POR MEZCLAS (MERGE) El algoritmo de ordenamiento por mezcla (Merge) se divide en dos procesos, primero se divide en partes iguales la lista: public static void mergesort(int[ ] matrix, int init, int n){ int n1; int n2; if (n > 1){ n1 = n / 2; n2 = n - n1; mergesort(matrix, init, n1); mergesort(matrix, init + n1, n2); merge(matrix, init, n1, n2); } } Y el algoritmo que nos permite mezclar los elementos según corresponda: private static void merge(int[ ] matrix, int init, int n1, int n2){ int[ ] buffer = new int[n1+n2]; int temp = 0; int temp1 = 0; int temp2 = 0; int i; while ((temp1 < n1) && (temp2 < n2)){ if (matrix[init + temp1] < matrix[init + n1 + temp2]){ buffer[temp++] = matrix[init + (temp1++)]; }else{ buffer[temp++] = matrix[init + n1 + (temp2++)]; } } while (temp1 < n1){ buffer[temp++] = matrix[init + (temp1++)]; } while (temp2 < n2){ buffer[temp++] = matrix[init + n1 + (temp2++)]; } for (i = 0; i < n1+n2; i++){ matrix[init + i] = buffer[i]; } } ORDENAMIENTO RAPIDO public static void Rapido(int matrix[], int a, int b){ matrix = new int[matrix.length]; int buf; int from = a; int to = b; int pivot = matrix[(from+to)/2]; do{
  • 11. while(matrix[from] < pivot){ from++; } while(matrix[to] > pivot){ to--; } if(from < = to){ buf = matrix[from]; matrix[from] = matrix[to]; matrix[to] = buf; from++; to--; } }while(from < = to); if(a < to){ Rapido(matrix, a, to); } if(from < b){ Rapido(matrix, from, b); } } COMPLEJIDAD Cada algoritmo de ordenamiento por definición tiene operaciones y cálculos mínimos y máximos que realiza (complejidad), a continuación una tabla que indica la cantidad de cálculos que corresponden a cada método de ordenamiento: Algoritmo Operaciones máximas Burbuja Ω(n2) Inserción Ω(n2/4) Selección Ω(n2) Shell Ω(n log2n) Merge Ω(n logn) Quick Ω(n2) en peor de los casos y Ω(n logn) en el promedio de los casos.
  • 12. OTRAS FUENTES CONSULTADAS  Capítulo 21: Métodos de ordenamiento y búsqueda. De: http://www.mailxmail.com/curso-aprende-programar/metodos-ordenamiento-busqueda  Algoritmos de búsqueda, de: http://html.rincondelvago.com/algoritmos-de-busqueda.html  Binary Search Illustrating Divide and Conquer, de: http://www.animal.ahrgr.de/showAnimationDetails.php3?anim=4 www.monografias.com  Trabajos sobre métodos ordenamiento, de www.rincondelvago.com