SlideShare una empresa de Scribd logo
1 de 34
Recursividad
Ordenación y búsqueda
Integrantes:
Jeison Aguilar 2-747-2378 John Morales 4-812-662
Diego Vergara 2-745-310 Ismael Herrera 2-746-986
Índice
1. Conceptos preliminares
1.1 Clave
1.2 Criterio de ordenamiento (ó de comparación)
1.3 Registro
2. Ordenamiento de Datos
3. Cómo se sabe cuál es el mejor algoritmo
3.1 ¿Qué grado de orden tendrá la información que vas a
manejar?
3.2 ¿Qué cantidad de datos vas a manipular?
3.3 ¿Qué tipos de datos quieres ordenar?
3.4 ¿Qué tamaño tienen los registros de tu lista?
4. Concepto de ordenación
4.1 Algoritmo de ordenación básicos
4.2 Ordenación por intercambio
4.3 Ordenación por selección
4.4 Ordenación por inserción
4.4.1 Análisis del ordenamiento por el método de inserción
4.4.2 Ventajas y desventajas
4.5 Ordenación por burbuja (bubblesort)
4.5.1 Análisis del algoritmo de la burbuja
4.5.2 Ventajas y desventajas
4.6 Ordenación Shell
4.7 Ordenación rápida (quicksort)
4.7.1 Pasos que sigue el algoritmo Quicksort
4.7.2 Análisis del algoritmo quicksort
4.7.3 Ventajas y desventajas
4.8 Ordenación Binsort y Radixsort
5. Búsqueda de datos
5.1 Búsqueda secuencial
5.2 Búsqueda binaria
6. Conclusiones (mínimo dos por cada
integrante del grupo de trabajo)
7. Bibliografía
Introducción
 Muchas actividades humanas requieren que en ellas las diferentes colecciones de elementos
utilizados se coloquen en un orden específico. Las oficinas de correo y las empresas de
mensajería ordenan el correo y los paquetes por códigos postales con el objeto de conseguir
una entrega eficiente; los anuarios o listines telefónicos ordenan sus clientes por orden alfabético
de apellidos con el fin último de encontrar fácilmente el número de teléfono deseado, El estudio
de diferentes métodos de ordenación es una tarea intrínsecamente interesante desde un punto
de vista teórico y, naturalmente, práctico. El capítulo estudia los algoritmos y técnicas de
ordenación más usuales y su implementación en C. De igual modo se estudiará el análisis de los
algoritmos utilizados en diferentes métodos de ordenación con el objetivo de conseguir la
máxima eficiencia en su uso real.
1.Conceptos Preliminares
 •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.
 •Búsqueda: Es aquel que está diseñado para
localizar un elemento con ciertas propiedades
dentro de una estructura de datos; por ejemplo,
ubicar el registro correspondiente a cierta persona
en una base de datos.
1.1 Clave: La parte de un registro por la cual se ordena
la lista. Por ejemplo, una lista de registros con campos
nombre, dirección y teléfono se puede ordenar
alfabéticamente de acuerdo a la clave nombre. En este
caso los campos dirección y teléfono no se toman en
cuenta en el ordenamiento.
1.2 Criterio de ordenamiento (o de comparación): el
criterio que utilizamos para asignar valores a los registros
con base en una o mas claves. De esta manera decidimos
si un registro es mayor o menor que otro.
1.3 Registro: un grupo de datos que forman la lista.
Pueden ser datos atómicos (enteros, caracteres, reales,
etc.) o grupo de ellos, que en C equivalen a las
estructuras.
2. Ordenamiento de datos:
 Es el proceso en el cual se agrupan los registros en orden definido, con el fin de facilitar la
búsqueda de datos ordenados en secuencia. El cual puede ser numérico, alfabético o incluso
alfanumérico, ascendente o descendente.
3. ¿cómo saber cuál es el que necesitas?
¿cuál es EL algoritmo?
 Cada algoritmo se comporta de modo diferente de acuerdo a la cantidad y la forma en que se le
presenten los datos, entre otras cosas. No existe EL algoritmo de ordenamiento. Sólo existe el mejor
para cada caso particular. Debes conocer a fondo el problema que quieres resolver, y aplicar el más
adecuado. Aunque hay algunas preguntas que te pueden ayudar a elegir:
 3.1¿Qué grado de orden tendrá la información que vas a manejar? Si la información va a estar casi
ordenada y no quieres complicarte, un algoritmo sencillo como el ordenamiento burbuja será
suficiente. Si por el contrario los datos van a estar muy desordenados, un algoritmo poderoso como
Quicksort puede ser el más indicado. Y si no puedes hacer una presunción sobre el grado de orden de
la información, lo mejor será elegir un algoritmo que se comporte de manera similar en cualquiera de
estos dos casos extremos.
3.2¿Qué cantidad de datos vas a manipular?
 Si la cantidad es pequeña, no es necesario utilizar un algoritmo complejo, y es preferible uno de
fácil implementación. Una cantidad muy grande puede hacer prohibitivo utilizar un algoritmo
que requiera de mucha memoria adicional.
3.3¿Qué tipo de datos quieres ordenar?
 Algunos algoritmos sólo funcionan con un tipo específico de datos (enteros, enteros positivos,
etc.) y otros son generales, es decir, aplicables a cualquier tipo de dato.
 3.4¿Qué tamaño tienen los registros de tu lista? Algunos algoritmos realizan múltiples
intercambios (burbuja, inserción). Si los registros son de gran tamaño estos intercambios son más
lentos.
4. Concepto de ordenación
 La ordenación o clasificación es un proceso
de organizar un conjunto de datos en algún
orden o secuencia específica, tal como
creciente o decreciente para datos
numéricos o el orden alfabético para datos
compuestos por caracteres. Los algoritmos
de ordenación permutan los elementos del
conjunto de datos hasta conseguir dicho
orden. Para ello se basan en dos
operaciones básicas: la comparación y el
intercambio.
4.1 Algoritmo de ordenación básicos
 4.2 Ordenación por intercambio:
 El algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando al elemento inferior
de la lista con los restantes y efectuando el intercambio de posiciones cuando el orden resultante
de la comparación no sea el correcto.
• Ejemplo
 Tengo una lista de números 8, 4, 6, 2, la cuál tiene que convertirse al ordenarla en 2, 4,
6, 8, el algoritmo realiza n-1 pasadas, en este caso serían 3
Pasada 0
El elemento de índice 0, se compara con cada elemento posterior de
la lista de índices 1, 2 y 3. En cada comparación se comprueba si el
elemento siguiente es más pequeño que el elemento de índice 0, de
ser así los elementos se intercambian. Después de realizar todas las
comparaciones el elemento más pequeño se localiza en el índice 0.
Pasada 1
 El elemento más pequeño se encuentra en el índice 0,
entonces vamos a comparar al elemento del índice 1 con
los elementos de los restantes posiciones 2 y3. En cada
comparación si el elemento del índice 1 es mayor que los
otros intercambian posición, así al terminar el segundo
elemento más pequeño de la lista se va a almacenar en la
posición 1
Pasada 2
 Han quedado acomodados los dos primeros valores
de lo índices 0 y 1, por lo que ahora solo resta
valorar a los dos restantes el índice 2 y 3 resultando
lo siguiente:
4.3 Ordenación por selección:
 Consideremos ordenar de manera ascendente un
arreglo de enteros, suponemos que son n números.
El algoritmo se trata en sucesivas pasadas que
intercambian al elemento más pequeño
sucesivamente con el primer elemento de la lista,
después con el segundo, posteriormente con el
tercero, así sucesivamente hasta completar el
ordenamiento.
4.4 Ordenación por inserción
 Este ordenamiento parte del principio de que el primer
elemento está ordenado y sucesivamente se van
colocando los miembros en la posición adecuada de
acuerdo a que pueden ir antes o después del primer
miembro.
 Para ser más claros, supongamos que tenemos tarjetas con
nombres los cuales queremos ordenar de forma alfabética,
tomamos la primer tarjeta, la tarjeta dos y la comparamos
con la primera, entonces decidimos si va antes o después
de la primera. Una vez colocadas ambas tarjetas, seguimos
con la tercera, la cual comparamos con la primera y
decidimos si va antes o después de la primera, si va
después entonces tendremos que comparar con la
segunda tarjeta, por lo que podrá ir Enmedio de las tarjetas
o al final de las dos primeras.
4.4.1 Análisis del método por inserción:
 El ordenamiento por inserción es una manera muy natural de ordenar para un ser humano, y
puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria.
 La idea de este algoritmo de ordenación consiste en ir insertando un elemento de la lista ó un
arreglo en la parte ordenada de la misma, asumiendo que el primer elemento es la parte
ordenada, el algoritmo ira comparando un elemento de la parte desordenada de la lista con los
elementos de la parte ordenada, insertando el elemento en la posición correcta dentro de la
parte ordenada, y así sucesivamente hasta obtener la lista ordenada.
4.4.2 Ventajas y desventajas
o Ventajas: La principal ventaja de este tipo de
ordenamiento es su simplicidad. También exhibe un
buen rendimiento cuando se trabaja con una
pequeña lista. El ordenamiento por inserción es un
algoritmo de ordenamiento en el lugar, de modo que
requiere de espacio mínimo.
o Desventajas: Su desventaja es que no funciona
tan bien como otros algoritmos mejores de
ordenamiento. Con n al cuadrado pasos
requeridos para cada n elemento a ser
ordenado, este algoritmo no funciona bien con
una lista grande. Por lo tanto, este sólo es útil
cuando se ordena una lista de pocos elementos.
4.5 Ordenación por burbuja (bubblesort)
 La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento.
Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente,
intercambiándolos de posición si están en el orden equivocado.
 También es conocido como el método del intercambio directo.
4.5.1 Análisis del algoritmo de la burbuja
 Al algoritmo de la burbuja, para ordenar un vector de n términos, tiene que realizar siempre el
mismo número de comparaciones:
 Esto es, el número de comparaciones c(n) no depende del orden de los términos, si no del
número de términos.
4.5.2 Ventajas y Desventajas
Ventajas
● Eficaz
● Sencillo
● Código reducido para
realizar el ordenamiento
Desventajas
● Consume bastante tiempo de
computadora
● Requiere muchas
lecturas/escrituras en memoria
4.6 Ordenación Shell
 El ordenamiento de Shell, a veces llamado “ordenamiento de
incremento decreciente”, mejora el ordenamiento por inserción
al romper la lista original en varias sub-listas más pequeñas,
cada una de las cuales se ordena mediante un ordenamiento
por inserción. La manera única en que se eligen estas sub-listas
es la clave del ordenamiento de Shell. En lugar de dividir la lista
en sub-listas de ítems contiguos, el ordenamiento de Shell usa
un incremento[i], a veces denominado brecha, para crear una
sub-lista eligiendo todos los ítems que están separados por[i
]ítems.
4.7 Ordenación rápida (quicksort)
 Quicksort (a veces llamado partición de intercambio especie ) es un eficiente algoritmo de clasificación ,
que actúa como un método sistemático para la colocación de los elementos de un array en orden.
Desarrollado por el informático británico , Tony Hoare en 1959 y publicado en 1961, todavía es un
algoritmo que se utiliza comúnmente para la clasificación. Cuando se aplica bien, puede ser dos o tres
veces más rápido que sus principales competidores, ordenamiento por mezcla y heapsort .
4.7.1 Pasos que sigue el algoritmo Quicksort
 Dividir: el arreglo se particiona en dos sub-arreglos no vacíos, tal que cada elemento de un sub-
arreglo sea menor o igual a los elementos del otro sub-arreglo.
 Conquistar: los dos arreglos son ordenados llamando recursivamente a Quicksort.
 Combinar: Como cada arreglo ya está ordenado, no será necesario requerir trabajo adicional.
4.7.2 Análisis del algoritmo Quicksort
 Se basa en la técnica divide y vencerás, que consiste en ir
subdividiendo el array en arrays más pequeños, y ordenar
éstos. Para hacer esta división, se toma un valor del array
como pivote, y se mueven todos los elementos menores
que este pivote a su izquierda, y los mayores a su derecha.
A continuación se aplica el mismo método a cada una de
las dos partes en las que queda dividido el array.
 Como se dijo anteriormente, Quicksort, está basado en el
paradigma “dividir y conquistar”.
4.7.3 Ventajas y Desventajas
Ventajas:
o Requiere de pocos recursos en comparación a
otros métodos de ordenamiento.
o En la mayoría de los casos, se requiere
aproximadamente N log N operaciones.
o Ciclo interno es extremadamente corto.
o No se requiere de espacio adicional durante
ejecución (in-place processing).
Desventajas :
o Se complica la implementación si la recursión
no es posible.
o Peor caso, se requiere N2.
o Un simple error en la implementación puede
pasar sin detección, lo que provocaría un
rendimiento pésimo.
o No es útil para aplicaciones de entrada
dinámica, donde se requiere reordenar una
lista de elementos con nuevos valores.
o Se pierde el orden relativo de elementos
idénticos.
4.8 Ordenación Binsort y Radixsort
Ordenación Binsort:
El ordenamiento por casilleros (bucket sort
o bin sort, en inglés) es un algoritmo de
ordenamiento que distribuye todos los
elementos a ordenar entre un número
finito de casilleros. Cada casillero sólo
puede contener los elementos que
cumplan unas determinadas condiciones.
Ordenación Radixsort:
Este ordenamiento se basa en los valores de los dígitos
reales en las representaciones de posiciones de los
números que se ordenan.
Por ejemplo el número 235 se escribe 2 en la posición de
centenas, un 3 en la posición de decenas y un 5 en la
posición de unidades.
5. Búsqueda de datos
 Ahora nos centraremos en algunos de los problemas más comunes que surgen en la
computación, los de búsqueda y ordenamiento. En esta sección estudiaremos la búsqueda.
Regresaremos al ordenamiento más adelante en el capítulo. La búsqueda es el proceso
algorítmico de encontrar un ítem particular en una colección de ítems. Una búsqueda
normalmente devuelve True o False según el ítem esté o no presente, respectivamente. En
ocasiones, el algoritmo se puede modificar para devolver la posición donde se encuentre el ítem.
Para nuestros propósitos, simplemente nos ocuparemos de la pregunta sobre la membresía.
5.1 Búsqueda secuencial
 búsqueda secuencial es un método para encontrar un valor objetivo dentro de una lista. Ésta
comprueba secuencialmente cada elemento de la lista para el valor objetivo hasta que es
encontrado o hasta que todos los elementos hayan sido comparados
 Búsqueda lineal es en tiempo el peor, y marca como máximo n comparaciones, donde n es la
longitud de la lista. Si la probabilidad de cada elemento para ser buscado es el mismo, entonces
la búsqueda lineal tiene una media de n/2 comparaciones, pero esta media puede ser afectado
si las probabilidades de búsqueda para cada elemento varían. La búsqueda lineal es poco
práctica porque otros algoritmos de búsqueda y esquemas, como el algoritmo de búsqueda
binaria y Tabla hash , es significativamente más rápido buscando todo menos listas cortas..
5.2 Búsqueda binaria
 La búsqueda de un elemento dentro de un array es una de las operaciones más importantes en
el procesamiento de información, y permite la recuperación de datos. El caso de la Búsqueda
Binaria, que es uno de las tantas búsquedas que existe, pero la más usada, está hecho para
diferentes campos en el mundo laboral, como por ejemplo una secretaria podría perder tan sólo
uno o dos minutos para encontrar el archivo de uno de los clientes de la compañía para la cual
trabaja, esto, asumiendo que los archivos estén perfectamente ordenados y catalogados.
Ejemplo
 La búsqueda binaria funciona en arreglos ordenados. Consiste en eliminar, tras cada
comparación, la mitad de los elementos del arreglo en los que se efectúa la búsqueda, comienza
por comparar el elemento del medio del arreglo con el valor buscado. Si el valor buscado es
igual al elemento del medio, su posición en el arreglo es retornada. Si el valor buscado es menor
o mayor que el elemento del medio, la búsqueda continurá en la primera o segunda mitad,
respectivamente, dejando la otra mitad fuera de consideración; y si son iguales, se ha
encontrado dicho valor buscado y se devuelve la posición y sale del bucle; pero si no es así
seguirá buscando dicho valor dentro del bucle y hará las comparaciones necesarias hasta
encontrar el valor buscado.
Ejemplo en c++
using namespace std;
int main()
{
int n, i, A[30], num, primero, ultimo, medio;
cout<<"Ingrese un arreglo ordenado: ";
cout<<"Cuantos elementos te gustaria ingresar?: ";
cin>>n;
for (i=0; i>A[i];
{
cout<<"Ingrese el numero que desea buscar: ";
cin>>num;
}
primero=0;
ultimo=n-1;
meedio=(primero+ultimo)/2;
while (primero<=ultimo);
{
if (A[medio]< num);
{
primero=medio+1;
} else if (A[medio]== num)
{
cout<<" Se encontro la posición ";
cout<<medio+1;
break;
}
else {
ultimo = medio - 1;
}
medio = (primero+ultimo)/2;
}
if (primero>ultimo)
{
cout<<num<<" no se encontro";
}
return 0;
}
Breve explicación
Para lograr entenderlo mejor, lo explicaremos con un ejemplo:
Por ejemplo, para buscar el elemento 3 en el array {1,2,3,4,5,6,7,8,9} se realizarán los siguientes pasos:
Se toma el elemento central y se divide el array en dos:
{1,2,3,4}-5-{6,7,8,9}
Como el elemento buscado (3) es menor que el central (5), debe estar en el primer subarray:
{1,2,3,4}
Se vuelve a dividir el array en dos:
{1}-2-{3,4}
Como el elemento buscado es mayor que el central, debe estar en el segundo subarray:
{3,4}
Se vuelve a dividir en dos:
{}-3-{4}
Como el elemento buscado coincide con el central, lo hemos encontrado.
Conclusiones
 En conclusión, se puede decir que este tema es muy importante ya sea
porque en si este puede utilizarse en la vida cotidiana de las personas en
como ponemos en práctica no formalmente como en la programación, pero
si la parte teórica sobre cómo se puede obtener algún dato o información
de algo en el método en el que lo ordenamos y como lo utilizamos para
nosotros.
 También podemos recalcar que al disponer de una colección de datos
ordenados simplifica la búsqueda de información entre estos, de ahí la
importancia de las tareas de ordenación y búsqueda y la relación que existe
entre ellas.
 Los métodos de ordenamiento de datos son muy útiles, ya que la forma de
arreglar los registros de una tabla en algún orden secu
 encial de acuerdo a un criterio de ordenamiento, el cual puede ser
numérico, alfabético o alfanumérico, ascendente o descendente. Estos tipos
de algoritmo nos facilita las búsquedas en registro, siendo mucho mas
rápido gracias al orden de los mismos.
 Mediante sus técnicas de algoritmos de ordenamiento básicos podemos
colocar listas detrás de otras y luego ordenarlas, como también podemos
comparar pares de valores de llaves, e intercambiarlos si no se encuentran
en sus posiciones correctas.
o En conclusión los algoritmos comunes de ordenamiento
pueden dividirse en dos clases según su orden de
complejidad. Por un lado, están los algoritmos de
complejidad cuadrática, entre los cuales se incluyen los
de burbujeo, de inserción de selección y por otro lado
están los de complejidad 0(n * log(n)) entre los cuales se
incluyen los algoritmos heapsort, mergesort y quicksort.
o Por otro lado no todos los algoritmos se comportan
igual ante conjunto de datos con características
particulares.
o Mediante esta pequeña investigación se logro entender
un poco mas lo que es la recursividad y sus códigos
para usar en c++, todo lo que es posible hacer con este
método de algoritmo.
o De igual manera lo que es la ordenación y búsqueda
otro tipo de sintaxis que logro aprender en esta
investigación y lo interesante que es.
Bibliografias
 http://c.conclase.net/orden/
 http://ordendata.blogspot.com/2009/03/ordenamiento-de-datos.html?m=1
 https://gianncid.wordpress.com/unidad-dos-2/metodo-quicksort/
 https://es.qwe.wiki/wiki/Quicksort
 https://www.google.com/amp/s/quicksortweb.wordpress.com/2017/10/07/ventajas-desventajas-
y-aplicaciones/amp/
 https://es.m.wikipedia.org/wiki/Ordenamiento_por_casilleros#:~:text=El%20ordenamiento%20por
%20casilleros%20(bucket,que%20cumplan%20unas%20determinadas%20condiciones.
 http://ict.udlap.mx/people/ingrid/Clases/IS211/Radix.html

Más contenido relacionado

La actualidad más candente

Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaJose Rivera
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda BinariaSanTy BizZle
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaJavier Alvarez
 
Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Sergio Ormeño
 
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 OrdenamientoJosé Antonio Sandoval Acosta
 
Metodo de ordenacion por Insercion
 Metodo de ordenacion por Insercion Metodo de ordenacion por Insercion
Metodo de ordenacion por InsercionMateo Falcon
 
Busquedas binarias y secuenciales
Busquedas binarias y secuencialesBusquedas binarias y secuenciales
Busquedas binarias y secuencialesLuis Igoodbad
 
13 Busquedas
13 Busquedas13 Busquedas
13 BusquedasUVM
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)José Antonio Sandoval Acosta
 
4 estructuras enlazadas
4 estructuras enlazadas4 estructuras enlazadas
4 estructuras enlazadasMar Vasquez
 
T A B L A D E D I S P E R S I O N (Hash Table)
T A B L A  D E  D I S P E R S I O N (Hash Table)T A B L A  D E  D I S P E R S I O N (Hash Table)
T A B L A D E D I S P E R S I O N (Hash Table)Angie Suarez
 
Metodos de ordenamiento externo
Metodos de ordenamiento externoMetodos de ordenamiento externo
Metodos de ordenamiento externoEladio Castro
 

La actualidad más candente (20)

Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda Binaria
 
Informe analisis de algoritmos
Informe analisis de algoritmosInforme analisis de algoritmos
Informe analisis de algoritmos
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda Binaria
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Analisissss
AnalisissssAnalisissss
Analisissss
 
Busqueda
BusquedaBusqueda
Busqueda
 
datos de ordenamiento
datos de ordenamientodatos de ordenamiento
datos de ordenamiento
 
Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)Informe analisis de algoritmos (mitad de cuadrado)
Informe analisis de algoritmos (mitad de cuadrado)
 
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
 
Metodo de ordenacion por Insercion
 Metodo de ordenacion por Insercion Metodo de ordenacion por Insercion
Metodo de ordenacion por Insercion
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
METODOS DE BUSQUEDA
METODOS DE BUSQUEDAMETODOS DE BUSQUEDA
METODOS DE BUSQUEDA
 
Busquedas binarias y secuenciales
Busquedas binarias y secuencialesBusquedas binarias y secuenciales
Busquedas binarias y secuenciales
 
13 Busquedas
13 Busquedas13 Busquedas
13 Busquedas
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
 
4 estructuras enlazadas
4 estructuras enlazadas4 estructuras enlazadas
4 estructuras enlazadas
 
Metodo de busqueda secuencial
Metodo de busqueda secuencialMetodo de busqueda secuencial
Metodo de busqueda secuencial
 
T A B L A D E D I S P E R S I O N (Hash Table)
T A B L A  D E  D I S P E R S I O N (Hash Table)T A B L A  D E  D I S P E R S I O N (Hash Table)
T A B L A D E D I S P E R S I O N (Hash Table)
 
Metodos de ordenamiento externo
Metodos de ordenamiento externoMetodos de ordenamiento externo
Metodos de ordenamiento externo
 

Similar a Ordenamiento y búsqueda recursiva

Recursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y BusquedaRecursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y BusquedaEuniceLeguiasGonzale
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectoressirekarol
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctoresmishuhot
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosK Manuel TN
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaOsirysRock
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaMaiky Kobatakane
 
Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datosRené Sosa Arana
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxEverMuchairo1
 
Estructura de dato unidad 5
Estructura de dato unidad 5Estructura de dato unidad 5
Estructura de dato unidad 5lenithoz
 
Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficiosejosue23
 
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 ordenamientoJosé Antonio Sandoval Acosta
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1VivianaG
 
Algoritmo de busqueda truncamiento
Algoritmo de busqueda truncamientoAlgoritmo de busqueda truncamiento
Algoritmo de busqueda truncamientojaviervilugron
 
Unidad 5 metodos de ordenamiento
Unidad 5 metodos de ordenamientoUnidad 5 metodos de ordenamiento
Unidad 5 metodos de ordenamientoUrban Skate House
 

Similar a Ordenamiento y búsqueda recursiva (20)

Recursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y BusquedaRecursividad, Ordenacion y Busqueda
Recursividad, Ordenacion y Busqueda
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodos
 
1_Metodos.doc
1_Metodos.doc1_Metodos.doc
1_Metodos.doc
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busqueda
 
Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datos
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Metodo Intercambio
Metodo IntercambioMetodo Intercambio
Metodo Intercambio
 
ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptx
 
Estructura de dato unidad 5
Estructura de dato unidad 5Estructura de dato unidad 5
Estructura de dato unidad 5
 
Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficios
 
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
 
Tema5
Tema5Tema5
Tema5
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Algoritmo de busqueda truncamiento
Algoritmo de busqueda truncamientoAlgoritmo de busqueda truncamiento
Algoritmo de busqueda truncamiento
 
Unidad 5 metodos de ordenamiento
Unidad 5 metodos de ordenamientoUnidad 5 metodos de ordenamiento
Unidad 5 metodos de ordenamiento
 

Último

RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 

Último (20)

La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 

Ordenamiento y búsqueda recursiva

  • 1. Recursividad Ordenación y búsqueda Integrantes: Jeison Aguilar 2-747-2378 John Morales 4-812-662 Diego Vergara 2-745-310 Ismael Herrera 2-746-986
  • 2. Índice 1. Conceptos preliminares 1.1 Clave 1.2 Criterio de ordenamiento (ó de comparación) 1.3 Registro 2. Ordenamiento de Datos 3. Cómo se sabe cuál es el mejor algoritmo 3.1 ¿Qué grado de orden tendrá la información que vas a manejar? 3.2 ¿Qué cantidad de datos vas a manipular? 3.3 ¿Qué tipos de datos quieres ordenar? 3.4 ¿Qué tamaño tienen los registros de tu lista? 4. Concepto de ordenación 4.1 Algoritmo de ordenación básicos 4.2 Ordenación por intercambio 4.3 Ordenación por selección 4.4 Ordenación por inserción 4.4.1 Análisis del ordenamiento por el método de inserción 4.4.2 Ventajas y desventajas 4.5 Ordenación por burbuja (bubblesort) 4.5.1 Análisis del algoritmo de la burbuja 4.5.2 Ventajas y desventajas 4.6 Ordenación Shell 4.7 Ordenación rápida (quicksort) 4.7.1 Pasos que sigue el algoritmo Quicksort 4.7.2 Análisis del algoritmo quicksort 4.7.3 Ventajas y desventajas 4.8 Ordenación Binsort y Radixsort 5. Búsqueda de datos 5.1 Búsqueda secuencial 5.2 Búsqueda binaria 6. Conclusiones (mínimo dos por cada integrante del grupo de trabajo) 7. Bibliografía
  • 3. Introducción  Muchas actividades humanas requieren que en ellas las diferentes colecciones de elementos utilizados se coloquen en un orden específico. Las oficinas de correo y las empresas de mensajería ordenan el correo y los paquetes por códigos postales con el objeto de conseguir una entrega eficiente; los anuarios o listines telefónicos ordenan sus clientes por orden alfabético de apellidos con el fin último de encontrar fácilmente el número de teléfono deseado, El estudio de diferentes métodos de ordenación es una tarea intrínsecamente interesante desde un punto de vista teórico y, naturalmente, práctico. El capítulo estudia los algoritmos y técnicas de ordenación más usuales y su implementación en C. De igual modo se estudiará el análisis de los algoritmos utilizados en diferentes métodos de ordenación con el objetivo de conseguir la máxima eficiencia en su uso real.
  • 4. 1.Conceptos Preliminares  •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.  •Búsqueda: Es aquel que está diseñado para localizar un elemento con ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos. 1.1 Clave: La parte de un registro por la cual se ordena la lista. Por ejemplo, una lista de registros con campos nombre, dirección y teléfono se puede ordenar alfabéticamente de acuerdo a la clave nombre. En este caso los campos dirección y teléfono no se toman en cuenta en el ordenamiento. 1.2 Criterio de ordenamiento (o de comparación): el criterio que utilizamos para asignar valores a los registros con base en una o mas claves. De esta manera decidimos si un registro es mayor o menor que otro. 1.3 Registro: un grupo de datos que forman la lista. Pueden ser datos atómicos (enteros, caracteres, reales, etc.) o grupo de ellos, que en C equivalen a las estructuras.
  • 5. 2. Ordenamiento de datos:  Es el proceso en el cual se agrupan los registros en orden definido, con el fin de facilitar la búsqueda de datos ordenados en secuencia. El cual puede ser numérico, alfabético o incluso alfanumérico, ascendente o descendente.
  • 6. 3. ¿cómo saber cuál es el que necesitas? ¿cuál es EL algoritmo?  Cada algoritmo se comporta de modo diferente de acuerdo a la cantidad y la forma en que se le presenten los datos, entre otras cosas. No existe EL algoritmo de ordenamiento. Sólo existe el mejor para cada caso particular. Debes conocer a fondo el problema que quieres resolver, y aplicar el más adecuado. Aunque hay algunas preguntas que te pueden ayudar a elegir:  3.1¿Qué grado de orden tendrá la información que vas a manejar? Si la información va a estar casi ordenada y no quieres complicarte, un algoritmo sencillo como el ordenamiento burbuja será suficiente. Si por el contrario los datos van a estar muy desordenados, un algoritmo poderoso como Quicksort puede ser el más indicado. Y si no puedes hacer una presunción sobre el grado de orden de la información, lo mejor será elegir un algoritmo que se comporte de manera similar en cualquiera de estos dos casos extremos.
  • 7. 3.2¿Qué cantidad de datos vas a manipular?  Si la cantidad es pequeña, no es necesario utilizar un algoritmo complejo, y es preferible uno de fácil implementación. Una cantidad muy grande puede hacer prohibitivo utilizar un algoritmo que requiera de mucha memoria adicional.
  • 8. 3.3¿Qué tipo de datos quieres ordenar?  Algunos algoritmos sólo funcionan con un tipo específico de datos (enteros, enteros positivos, etc.) y otros son generales, es decir, aplicables a cualquier tipo de dato.  3.4¿Qué tamaño tienen los registros de tu lista? Algunos algoritmos realizan múltiples intercambios (burbuja, inserción). Si los registros son de gran tamaño estos intercambios son más lentos.
  • 9. 4. Concepto de ordenación  La ordenación o clasificación es un proceso de organizar un conjunto de datos en algún orden o secuencia específica, tal como creciente o decreciente para datos numéricos o el orden alfabético para datos compuestos por caracteres. Los algoritmos de ordenación permutan los elementos del conjunto de datos hasta conseguir dicho orden. Para ello se basan en dos operaciones básicas: la comparación y el intercambio.
  • 10. 4.1 Algoritmo de ordenación básicos  4.2 Ordenación por intercambio:  El algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando al elemento inferior de la lista con los restantes y efectuando el intercambio de posiciones cuando el orden resultante de la comparación no sea el correcto.
  • 11. • Ejemplo  Tengo una lista de números 8, 4, 6, 2, la cuál tiene que convertirse al ordenarla en 2, 4, 6, 8, el algoritmo realiza n-1 pasadas, en este caso serían 3 Pasada 0 El elemento de índice 0, se compara con cada elemento posterior de la lista de índices 1, 2 y 3. En cada comparación se comprueba si el elemento siguiente es más pequeño que el elemento de índice 0, de ser así los elementos se intercambian. Después de realizar todas las comparaciones el elemento más pequeño se localiza en el índice 0.
  • 12. Pasada 1  El elemento más pequeño se encuentra en el índice 0, entonces vamos a comparar al elemento del índice 1 con los elementos de los restantes posiciones 2 y3. En cada comparación si el elemento del índice 1 es mayor que los otros intercambian posición, así al terminar el segundo elemento más pequeño de la lista se va a almacenar en la posición 1
  • 13. Pasada 2  Han quedado acomodados los dos primeros valores de lo índices 0 y 1, por lo que ahora solo resta valorar a los dos restantes el índice 2 y 3 resultando lo siguiente:
  • 14. 4.3 Ordenación por selección:  Consideremos ordenar de manera ascendente un arreglo de enteros, suponemos que son n números. El algoritmo se trata en sucesivas pasadas que intercambian al elemento más pequeño sucesivamente con el primer elemento de la lista, después con el segundo, posteriormente con el tercero, así sucesivamente hasta completar el ordenamiento.
  • 15. 4.4 Ordenación por inserción  Este ordenamiento parte del principio de que el primer elemento está ordenado y sucesivamente se van colocando los miembros en la posición adecuada de acuerdo a que pueden ir antes o después del primer miembro.  Para ser más claros, supongamos que tenemos tarjetas con nombres los cuales queremos ordenar de forma alfabética, tomamos la primer tarjeta, la tarjeta dos y la comparamos con la primera, entonces decidimos si va antes o después de la primera. Una vez colocadas ambas tarjetas, seguimos con la tercera, la cual comparamos con la primera y decidimos si va antes o después de la primera, si va después entonces tendremos que comparar con la segunda tarjeta, por lo que podrá ir Enmedio de las tarjetas o al final de las dos primeras.
  • 16. 4.4.1 Análisis del método por inserción:  El ordenamiento por inserción es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria.  La idea de este algoritmo de ordenación consiste en ir insertando un elemento de la lista ó un arreglo en la parte ordenada de la misma, asumiendo que el primer elemento es la parte ordenada, el algoritmo ira comparando un elemento de la parte desordenada de la lista con los elementos de la parte ordenada, insertando el elemento en la posición correcta dentro de la parte ordenada, y así sucesivamente hasta obtener la lista ordenada.
  • 17. 4.4.2 Ventajas y desventajas o Ventajas: La principal ventaja de este tipo de ordenamiento es su simplicidad. También exhibe un buen rendimiento cuando se trabaja con una pequeña lista. El ordenamiento por inserción es un algoritmo de ordenamiento en el lugar, de modo que requiere de espacio mínimo. o Desventajas: Su desventaja es que no funciona tan bien como otros algoritmos mejores de ordenamiento. Con n al cuadrado pasos requeridos para cada n elemento a ser ordenado, este algoritmo no funciona bien con una lista grande. Por lo tanto, este sólo es útil cuando se ordena una lista de pocos elementos.
  • 18. 4.5 Ordenación por burbuja (bubblesort)  La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado.  También es conocido como el método del intercambio directo.
  • 19. 4.5.1 Análisis del algoritmo de la burbuja  Al algoritmo de la burbuja, para ordenar un vector de n términos, tiene que realizar siempre el mismo número de comparaciones:  Esto es, el número de comparaciones c(n) no depende del orden de los términos, si no del número de términos.
  • 20. 4.5.2 Ventajas y Desventajas Ventajas ● Eficaz ● Sencillo ● Código reducido para realizar el ordenamiento Desventajas ● Consume bastante tiempo de computadora ● Requiere muchas lecturas/escrituras en memoria
  • 21. 4.6 Ordenación Shell  El ordenamiento de Shell, a veces llamado “ordenamiento de incremento decreciente”, mejora el ordenamiento por inserción al romper la lista original en varias sub-listas más pequeñas, cada una de las cuales se ordena mediante un ordenamiento por inserción. La manera única en que se eligen estas sub-listas es la clave del ordenamiento de Shell. En lugar de dividir la lista en sub-listas de ítems contiguos, el ordenamiento de Shell usa un incremento[i], a veces denominado brecha, para crear una sub-lista eligiendo todos los ítems que están separados por[i ]ítems.
  • 22. 4.7 Ordenación rápida (quicksort)  Quicksort (a veces llamado partición de intercambio especie ) es un eficiente algoritmo de clasificación , que actúa como un método sistemático para la colocación de los elementos de un array en orden. Desarrollado por el informático británico , Tony Hoare en 1959 y publicado en 1961, todavía es un algoritmo que se utiliza comúnmente para la clasificación. Cuando se aplica bien, puede ser dos o tres veces más rápido que sus principales competidores, ordenamiento por mezcla y heapsort .
  • 23. 4.7.1 Pasos que sigue el algoritmo Quicksort  Dividir: el arreglo se particiona en dos sub-arreglos no vacíos, tal que cada elemento de un sub- arreglo sea menor o igual a los elementos del otro sub-arreglo.  Conquistar: los dos arreglos son ordenados llamando recursivamente a Quicksort.  Combinar: Como cada arreglo ya está ordenado, no será necesario requerir trabajo adicional.
  • 24. 4.7.2 Análisis del algoritmo Quicksort  Se basa en la técnica divide y vencerás, que consiste en ir subdividiendo el array en arrays más pequeños, y ordenar éstos. Para hacer esta división, se toma un valor del array como pivote, y se mueven todos los elementos menores que este pivote a su izquierda, y los mayores a su derecha. A continuación se aplica el mismo método a cada una de las dos partes en las que queda dividido el array.  Como se dijo anteriormente, Quicksort, está basado en el paradigma “dividir y conquistar”.
  • 25. 4.7.3 Ventajas y Desventajas Ventajas: o Requiere de pocos recursos en comparación a otros métodos de ordenamiento. o En la mayoría de los casos, se requiere aproximadamente N log N operaciones. o Ciclo interno es extremadamente corto. o No se requiere de espacio adicional durante ejecución (in-place processing). Desventajas : o Se complica la implementación si la recursión no es posible. o Peor caso, se requiere N2. o Un simple error en la implementación puede pasar sin detección, lo que provocaría un rendimiento pésimo. o No es útil para aplicaciones de entrada dinámica, donde se requiere reordenar una lista de elementos con nuevos valores. o Se pierde el orden relativo de elementos idénticos.
  • 26. 4.8 Ordenación Binsort y Radixsort Ordenación Binsort: El ordenamiento por casilleros (bucket sort o bin sort, en inglés) es un algoritmo de ordenamiento que distribuye todos los elementos a ordenar entre un número finito de casilleros. Cada casillero sólo puede contener los elementos que cumplan unas determinadas condiciones. Ordenación Radixsort: Este ordenamiento se basa en los valores de los dígitos reales en las representaciones de posiciones de los números que se ordenan. Por ejemplo el número 235 se escribe 2 en la posición de centenas, un 3 en la posición de decenas y un 5 en la posición de unidades.
  • 27. 5. Búsqueda de datos  Ahora nos centraremos en algunos de los problemas más comunes que surgen en la computación, los de búsqueda y ordenamiento. En esta sección estudiaremos la búsqueda. Regresaremos al ordenamiento más adelante en el capítulo. La búsqueda es el proceso algorítmico de encontrar un ítem particular en una colección de ítems. Una búsqueda normalmente devuelve True o False según el ítem esté o no presente, respectivamente. En ocasiones, el algoritmo se puede modificar para devolver la posición donde se encuentre el ítem. Para nuestros propósitos, simplemente nos ocuparemos de la pregunta sobre la membresía.
  • 28. 5.1 Búsqueda secuencial  búsqueda secuencial es un método para encontrar un valor objetivo dentro de una lista. Ésta comprueba secuencialmente cada elemento de la lista para el valor objetivo hasta que es encontrado o hasta que todos los elementos hayan sido comparados  Búsqueda lineal es en tiempo el peor, y marca como máximo n comparaciones, donde n es la longitud de la lista. Si la probabilidad de cada elemento para ser buscado es el mismo, entonces la búsqueda lineal tiene una media de n/2 comparaciones, pero esta media puede ser afectado si las probabilidades de búsqueda para cada elemento varían. La búsqueda lineal es poco práctica porque otros algoritmos de búsqueda y esquemas, como el algoritmo de búsqueda binaria y Tabla hash , es significativamente más rápido buscando todo menos listas cortas..
  • 29. 5.2 Búsqueda binaria  La búsqueda de un elemento dentro de un array es una de las operaciones más importantes en el procesamiento de información, y permite la recuperación de datos. El caso de la Búsqueda Binaria, que es uno de las tantas búsquedas que existe, pero la más usada, está hecho para diferentes campos en el mundo laboral, como por ejemplo una secretaria podría perder tan sólo uno o dos minutos para encontrar el archivo de uno de los clientes de la compañía para la cual trabaja, esto, asumiendo que los archivos estén perfectamente ordenados y catalogados.
  • 30. Ejemplo  La búsqueda binaria funciona en arreglos ordenados. Consiste en eliminar, tras cada comparación, la mitad de los elementos del arreglo en los que se efectúa la búsqueda, comienza por comparar el elemento del medio del arreglo con el valor buscado. Si el valor buscado es igual al elemento del medio, su posición en el arreglo es retornada. Si el valor buscado es menor o mayor que el elemento del medio, la búsqueda continurá en la primera o segunda mitad, respectivamente, dejando la otra mitad fuera de consideración; y si son iguales, se ha encontrado dicho valor buscado y se devuelve la posición y sale del bucle; pero si no es así seguirá buscando dicho valor dentro del bucle y hará las comparaciones necesarias hasta encontrar el valor buscado.
  • 31. Ejemplo en c++ using namespace std; int main() { int n, i, A[30], num, primero, ultimo, medio; cout<<"Ingrese un arreglo ordenado: "; cout<<"Cuantos elementos te gustaria ingresar?: "; cin>>n; for (i=0; i>A[i]; { cout<<"Ingrese el numero que desea buscar: "; cin>>num; } primero=0; ultimo=n-1; meedio=(primero+ultimo)/2; while (primero<=ultimo); { if (A[medio]< num); { primero=medio+1; } else if (A[medio]== num) { cout<<" Se encontro la posición "; cout<<medio+1; break; } else { ultimo = medio - 1; } medio = (primero+ultimo)/2; } if (primero>ultimo) { cout<<num<<" no se encontro"; } return 0; }
  • 32. Breve explicación Para lograr entenderlo mejor, lo explicaremos con un ejemplo: Por ejemplo, para buscar el elemento 3 en el array {1,2,3,4,5,6,7,8,9} se realizarán los siguientes pasos: Se toma el elemento central y se divide el array en dos: {1,2,3,4}-5-{6,7,8,9} Como el elemento buscado (3) es menor que el central (5), debe estar en el primer subarray: {1,2,3,4} Se vuelve a dividir el array en dos: {1}-2-{3,4} Como el elemento buscado es mayor que el central, debe estar en el segundo subarray: {3,4} Se vuelve a dividir en dos: {}-3-{4} Como el elemento buscado coincide con el central, lo hemos encontrado.
  • 33. Conclusiones  En conclusión, se puede decir que este tema es muy importante ya sea porque en si este puede utilizarse en la vida cotidiana de las personas en como ponemos en práctica no formalmente como en la programación, pero si la parte teórica sobre cómo se puede obtener algún dato o información de algo en el método en el que lo ordenamos y como lo utilizamos para nosotros.  También podemos recalcar que al disponer de una colección de datos ordenados simplifica la búsqueda de información entre estos, de ahí la importancia de las tareas de ordenación y búsqueda y la relación que existe entre ellas.  Los métodos de ordenamiento de datos son muy útiles, ya que la forma de arreglar los registros de una tabla en algún orden secu  encial de acuerdo a un criterio de ordenamiento, el cual puede ser numérico, alfabético o alfanumérico, ascendente o descendente. Estos tipos de algoritmo nos facilita las búsquedas en registro, siendo mucho mas rápido gracias al orden de los mismos.  Mediante sus técnicas de algoritmos de ordenamiento básicos podemos colocar listas detrás de otras y luego ordenarlas, como también podemos comparar pares de valores de llaves, e intercambiarlos si no se encuentran en sus posiciones correctas. o En conclusión los algoritmos comunes de ordenamiento pueden dividirse en dos clases según su orden de complejidad. Por un lado, están los algoritmos de complejidad cuadrática, entre los cuales se incluyen los de burbujeo, de inserción de selección y por otro lado están los de complejidad 0(n * log(n)) entre los cuales se incluyen los algoritmos heapsort, mergesort y quicksort. o Por otro lado no todos los algoritmos se comportan igual ante conjunto de datos con características particulares. o Mediante esta pequeña investigación se logro entender un poco mas lo que es la recursividad y sus códigos para usar en c++, todo lo que es posible hacer con este método de algoritmo. o De igual manera lo que es la ordenación y búsqueda otro tipo de sintaxis que logro aprender en esta investigación y lo interesante que es.
  • 34. Bibliografias  http://c.conclase.net/orden/  http://ordendata.blogspot.com/2009/03/ordenamiento-de-datos.html?m=1  https://gianncid.wordpress.com/unidad-dos-2/metodo-quicksort/  https://es.qwe.wiki/wiki/Quicksort  https://www.google.com/amp/s/quicksortweb.wordpress.com/2017/10/07/ventajas-desventajas- y-aplicaciones/amp/  https://es.m.wikipedia.org/wiki/Ordenamiento_por_casilleros#:~:text=El%20ordenamiento%20por %20casilleros%20(bucket,que%20cumplan%20unas%20determinadas%20condiciones.  http://ict.udlap.mx/people/ingrid/Clases/IS211/Radix.html