SlideShare una empresa de Scribd logo
Introducción a la
Programación.
Tema: Búsqueda, ordenación y
mezcla de arreglos
Unidad II: Elementos de Programación .
2.8 Definición de arreglos unidimensionales y
bidimensionales.
2.9 Búsqueda, ordenación y
mezcla de arreglos.
2.10 Estructura de datos.
2.11 Programación modular.
2.12 Definición de punteros.
2.13 Estructuras dinámicas.
Unidad II: Elementos de Programación
Bibliografía
Algoritmos
computacionales.
Introduccción al análisis
y diseño. Editorial
Addison Wesley. Tercera
edición. 2002. Baase
Sara, Van Gelder Allen.
Capítulo 4. Página 149 –
151.
Bibliografía
Cómo programar
C/C++ y Java
Introduccción al análisis
y diseño. Editorial
Pearson Prentice Hall
Cuarta edición. 2004.
Deitel. Deitel. Capítulo 6.
Página 197.
Bibliografía
Curso de programación C/C++
Fco. Javier Ceballos Sierra.
Profesor titular de la Escuela Universitaria
Politécnica Universidad de Alcalá de
Henares.
Editorial RA-MA.
Páginas 492, 493, 495-498, 502, 503.
Bibliografía
Fundamentos de Programación con el
Lenguaje de Programación C++
Vicente Benjumea y Manuel Roldán
31 de mayo de 2017
UNIVERSIDAD DE MÁLAGA. Dpto. Lenguajes
y CC. Computación
E.T.S.I. Informática
Páginas: 85-88, 90,
Búsqueda, ordenación y mezcla de arreglos.
Los algoritmos para ordenar sirven para
acomodar en orden los elementos de un
conjunto. Ésto fue uno de los primeros
problemas que se estudiaron intensamente en
las ciencias de la computación. Muchas de las
aplicaciones más conocidas del paradigma de
diseño de algoritmos Divide y Vencerás son
algoritmos de ordenamiento. Durante los años
sesenta, cuando el procesamiento comercial de
datos se automatizó en gran escala, el
programa de ordenamiento era el que se
ejecutaba con mayor frecuencia en muchas
instalaciones de cómputo.
Búsqueda, ordenación y mezcla de arreglos.
Hay varias razones para estudiar los algoritmos
de ordenamiento. Entre ellas están:
1.Tienen utilidad práctica porque el
ordenamiento es una actividad frecuente.
2.El trabajo con conjuntos grandes de datos en
las computadoras se facilita si los datos están
ordenados.
3.Se ha ideado una buena cantidad de
algoritmos para ordenar, ya que es posible
enfocar un problema dado desde muchos
puntos de vista distintos.
Búsqueda, ordenación y mezcla de arreglos.
Los algoritmos a estudiar se denominan
ordenamientos internos porque se supone que
los datos están en la memoria de acceso
aleatorio de alta velocidad de la computadora.
Los algoritmos para ordenar grandes conjuntos
de datos almacenados en dispositivos de
almacenamiento, con restricciones sobre la
forma de acceder a los datos, se denominan
ordenamientos externos.
Búsqueda, ordenación y mezcla de arreglos.
Ejemplos:
1.Un banco ordena todos los cheques por número
de cuenta, de manera que puede preparar los
estados individuales del banco al final de cada
mes.
2.Las empresas de telefonía ordenan sus listas de
cuentas por apellido y, dentro de este
ordenamiento, hacen otro por nombre para
facilitar la búsqueda de números telefónicos.
3.Virtualmente todas las empresas deben ordenar
algún tipo de dato y, en muchos casos,
cantidades masivas de éstos.
Método de la burbuja:
La idea de este algoritmo consiste en hacer
repetidas pasadas sobre el array, trasladando
en cada una, el elemento más pequeño hasta el
principio del array. Este algoritmo se conoce
como ordenación por el método de la burbuja,
porque si se consideran los elementos como si
estuviera en posición vertical y fueran burbujas
con un cierto peso en un depósito de agua,
dichas burbujas irían ascendiendo en función de
su valor.
Métodos de ordenación.
Métodos de ordenación.
Método de la burbuja:
1. Comparamos el primer elemento con el segundo, el segundo
con el tercero, el tercero con el cuarto, etc. Cuando el
resultado de una comparación sea "mayor que'', se
intercambian los valores de los elementos comparados. Con
esto conseguimos llevar el valor mayor a la posición n.
2. Repetimos el punto 1, ahora para los n-1 primeros elementos
de la lista. Con esto conseguimos llevar el valor mayor de
éstos a la posición n-1.
3. Repetimos el punto 1, ahora para los n-2 primeros elementos
de la lista, y así sucesivamente.
4. Se termina después de repetir el proceso descrito, n-1
veces, o cuando al finalizar la ejecución del iésimo proceso
no haya habido ningún cambio.
Método de la burbuja:
<función clasificar(array "a" de "n" elementos)>
["a" es un array cuyos elementos son as, a1, ..., an-1]
n=n-1
DO WHILE ("a" no esté ordenado y n > 0 )
i= 1
DOWHILE(i<=n)
IF(a[i-l]>a[i])THEN permutar a[i-1] con a[i]
ENDIF
i = i+1
ENDDO
n=n-1
ENDDO
END <clasificar>
Métodos de ordenación.
Método de la burbuja:
#include <iostream>
using namespace std;
#include <cstdlib>
int const DIM = 10;
typedef float tArray[DIM];
void rellenarArray(tArray);
void ordenarArray(tArray);
void mostrarArray(const tArray);
Métodos de ordenación.
Método de la burbuja:
int main()
{tArray miArray; rellenarArray(miArray);
ordenarArray(miArray); mostrarArray(miArray);
system("PAUSE"); return 0;}
void rellenarArray(tArray miArray){
cout << "Introduzca los 10 elementos del array"
<< endl;
for (int i = 0; i < DIM; i++)
{ // Rellenamos las 10 posiciones del array
cin >> miArray[i];}}
Métodos de ordenación.
Método de la burbuja:
void ordenarArray(tArray miArray){
float temporal;
for (int i = 0;i < DIM; i++)
{for (int j = 0; j< DIM-1; j++){
if (miArray[j] < miArray[j+1])
{/ * Ordena el array de mayor a menor, cambiar
el "<" a ">" para ordenar de menor a mayor*/
temporal = miArray[j]; miArray[j] = miArray[j+1];
miArray[j+1] = temporal;}}}}
Métodos de ordenación.
Método de la burbuja:
void mostrarArray(const tArray miArray){
cout << "Mostrando array ordenado..." <<
endl;
for (int i = 0; i < DIM; i++)
// Imprime las 10 posiciones
cout << miArray[i] << endl;}
Métodos de ordenación.
Método de inserción:
1.Inicialmente, se ordenan los dos primeros
elementos del array.
2.Luego se inserta el tercer elemento en la
posición correcta con respecto a los dos
primeros.
3.A continuación se inserta el cuarto elemento
en la posición correcta con respecto a los tres
primeros elementos ya clasificados.
4.Y así sucesivamente hasta llegar al último
elemento del array.
Métodos de ordenación.
Método de inserción:
<función inserción(array "a" de "n" elementos)>
["a" es un array cuyos elementos son a0, a1, ...,
an-1]
i= 1
DOWHILE(i<n)
x = a[i]
insertar x en la posición correcta entre a0y ai
ENDDO
END <inserción>
Métodos de ordenación.
Método de inserción:
#include<iostream>
#include"leearreglo.h"
using namespace std;
#define largo 50
void insercionDirecta(int A[],int n)
{ int i,j,v;
for (i = 1; i < n; i++)
{ v = A[i]; j = i - 1;
while (j >= 0 && A[j] > v)
{ A[j + 1] = A[j];
j--; }
A[j + 1] = v; } }
Métodos de ordenación.
Método de inserción:
void main ()
{ int A[largo],n;
do{
cout<<"Cantidad de numeros a ingresar: ";cin>>n;
if(n<=0||n>largo)
cout<<"Debe ingresar un valor > a 0 y < a "<<largo<<endl;
}while(n<=0||n>largo);
leeCadena(n,A);
insercionDirecta(A,n);
muestraCadena(n,A);}
Métodos de ordenación.
Método de inserción:
#include<iostream>
using namespace std;
void leeCadena(int cant,int n[])
{ int i;
for(i=0;i<cant;i++)
{ cout<<"Ingresa numero "<<i+1<<": ";
cin>>n[i]; } }
Métodos de ordenación.
Método de inserción:
void muestraCadena(int cant,int n[])
{
int i;
for(i=0;i<cant;i++)
{
cout<<n[i]<<endl;
}
}
Métodos de ordenación.
Método quicksort:
1.Se selecciona un valor perteneciente al rango de
valores del array. Este valor se puede escoger
aleatoriamente o haciendo la media de un
pequeño conjunto de valores tomados del array.
El valor óptimo sería la mediana (el valor que es
menor o igual que los valores correspondientes a
la mitad de los elementos del array y mayor o
igual que los valores correspondientes a la otra
mitad). No obstante, incluso en el peor de los
casos (el valor escogido está en un extremo),
quicksort funciona correctamente.
Métodos de ordenación.
Método quicksort:
2.Se divide el array en dos partes, una con
todos los elementos menores que el valor
seleccionado y otra con todos los elementos
mayores o iguales.
3.Se repiten los puntos 1 y 2 para cada una de
las partes en la que se ha dividido el array,
hasta que esté ordenado,
4.El proceso descrito es esencialmente
recursivo.
Métodos de ordenación.
Mètodo quicksort
<función qs(array "a" )>
Se elige un valor x del array
DO WHILE ( "a" no esté dividido en dos partes )
[dividir "a" en dos partes: a_inf y a_sup]
a_inf con los elementos ai < x
a_sup con los elementos ai>= x
ENDDO
IF ( existe a_inf ) THEN
qs( a_inf )
ENDIF
IF ( existe a_sup ) THEN
qs( a_sup)
ENDIF
END <qs>
Métodos de ordenación.
Wikibooks
https://es.wikibooks.org/wiki/Programaci%C
3%B3n_en_C/Algoritmos_y_Estructuras_de
_Datos
Más información en enlaces.
Búsqueda lineal o secuencial:
Este método de búsqueda, aunque válido,
es el menos eficiente. Se basa en comparar
el valor que se desea buscar con cada uno
de los valores del array. El array no tiene por
qué estar clasificado.
Métodos de búsqueda.
Búsqueda lineal o secuencial:
Consiste en ir recorriendo secuencialmente la
colección de datos hasta encontrar el elemento
buscado o, en última instancia, hasta recorrer la
colección completa, en cuyo caso podemos
estar seguros que el elemento buscado no se
encuentra en la colección.
La búsqueda lineal es adecuada como
mecanismo de búsqueda general en
colecciones de datos sin organización conocida.
Métodos de búsqueda.
Búsqueda secuencial:
clase Busqueda { privado caracter vec(6)
publico cargar(caracter valor, entero i){ vec(i) = valor }
publico entero secuencial (caracter x)
{ entero bandera = 0
entero indice = 0, i = 1
Mientras ((bandera == 0 ) O ( i <= 6))
si (vec (i ) == x) Entonces bandera = 1 indice = i
Fin Si
i = i + 1
Fin Mientras
retornar indice}}
Métodos de búsqueda.
Búsqueda secuencial:
INICIO
{ caracter valores entero veces, resp
Busqueda obj
Para veces=1, veces, 1
Imprimir (“Teclee una letra:”)
Leer (valores)
obj.cargar (valores,veces)
Fin Para
Imprimir (“Introduzca el carácter a buscar:”)
Leer (valores)
resp= obj.secuencial (valores)
Si (resp == 0) Entonces Imprimir (“No se encontro”, valores, “ en el vector”)
De Otro Modo Imprimir (“El caracter” , valores , “ esta en la posición”, resp)
Fin Si
FIN
Métodos de búsqueda.
Búsqueda secuencial:
<función Búsqueda_S( array a, valor que queremos buscar)>
i=0
DO WHILE ( no encontrado )
IF ( valor = a[i] )
encontrado
ENDIF
i = i+l
ENDDO
END <Búsqueda_S>
Métodos de búsqueda.
Búsqueda secuencial:
int buscar_alt(int x, const Vector& v)
{int idx = int(v.size());
bool ok = false;
for (int i = 0; (i < int(v.size())) && ! ok; ++i) {
if (x == v[i]) {
ok = true;
idx = i;}
}
return idx;}
Métodos de búsqueda.
Búsqueda secuencial:
Como puede observarse, recorremos uno a uno
todos los elementos hasta que podemos responder
en sentido afirmativo o negativo. Respondemos en
sentido negativo (el elemento no se encuentra) si el
índice del siguiente elemento a probar está más
allá del último elemento del array. Respondemos en
sentido positivo si el elemento indicado por la
variable i contiene el elemento buscado. En tal
caso, acaba el bucle y se devuelve dicha posición i.
Nótese que si el elemento no se encuentra se
devuelve v.size(), que es una posición no válida del
array.
Métodos de búsqueda.
Búsqueda secuencial:
La búsqueda secuencial es simple, pero requiere
recorrer todo el array para estar seguros de que el
elemento a buscar no se encuentra en la colección. Si el
array tiene gran cantidad de elementos y necesitamos
que las búsquedas se realicen de forma rápida, este
mecanismo podría no ser adecuado. Si estamos
interesados en acelerar el proceso de búsqueda,
necesitamos información adicional que de pistas para
poder realizar una implementación más eficiente.
Necesitamos información acerca de la organización
interna de los elementos en el array. Hay diferentes
formas de organizar la información en el array que nos
permiten implemementar algoritmos de búsqueda más
eficientes.
Métodos de búsqueda.
Búsqueda binaria:
Un método eficiente de búsqueda, que
puede aplicarse a los arrays clasificados, es
la búsqueda binaria. Partiendo de que los
elementos del array están almacenados en
orden ascendente.
Métodos de búsqueda.
Búsqueda binaria:
La idea consiste en seleccionar un elemento de la
colección y comprobar si se trata del elemento
buscado. Si es así el proceso termina con éxito,
pero si no, podemos aprovechar que sabemos que
los elementos se encuentran ordenados y descartar
todos los elementos que se encuentran a la
derecha del mismo o a su izquierda (según la
relación entre el valor seleccionado y el valor
buscado). Este proceso se repite hasta encontrar el
elemento o hasta que no queden elementos en la
colección, en cuyo caso el elemento no habrá sido
encontrado.
Métodos de búsqueda.
Búsqueda binaria:
1. Se selecciona el elemento del centro o aproximadamente del
centro del array. Si el valor a buscar no coincide con el
elemento seleccionado y es mayor que él, se continúa la
búsqueda en la segunda mitad del array.
2. Si, por el contrario, el valor a buscar es menor que el valor
del elemento seleccionado, la búsqueda continúa en la
primera mitad del array. En ambos casos, se halla de nuevo
el elemento central, correspondiente al nuevo intervalo de
búsqueda, repitiéndose el ciclo.
3. El proceso se repite hasta que se encuentra el valor a
buscar, o bien hasta que el intervalo de búsqueda sea nulo,
lo que indicará que el elemento buscado no está en el array.
Métodos de búsqueda.
Búsqueda binaria:
<función Búsqueda-B( array a, valor que queremos buscar )>
DO WHILE ( exista un intervalo donde buscar )
x = elemento mitad del intervalo de búsqueda
IF(valor=x)THEN
encontrado
ELSE
IF(valor>x)THEN
buscar "valor" en la segunda mitad del intervalo de búsqueda
ENDIF
IF(valor<x)THEN
buscar "valor" en la primera mitad del intertalo de búsqueda
ENDIF
ENDIF
ENDDO
END <Búsqueda_B>
Métodos de búsqueda.
Búsqueda binaria:
/* busca la posición del primer elemento igual a x, si no se
encuentra, retorna v.size()*/
unsigned buscar_bin(int x, const Vector& v)
{unsigned i = 0 ;
unsigned f = v.size() ;
unsigned m = (i + f) / 2 ;
while ((i < f) && (x != v[m])) {
if (x < v[m]) {f = m ;} else {i = m + 1 ;}
m = (i + f) / 2 ;}
if (i >= f) {m = int(v.size());}
return m;
}
Métodos de búsqueda.

Más contenido relacionado

La actualidad más candente

Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Rubi Veronica Chimal Cuxin
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
IEO Santo Tomás
 
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 sortlinkinpark03
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
compumet sac
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Rubi Veronica Chimal Cuxin
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
Fercho Junca
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Smith Suarez Vargas
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)Fuerza Auriazul
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
Metodo de ordenacion por Insercion
 Metodo de ordenacion por Insercion Metodo de ordenacion por Insercion
Metodo de ordenacion por InsercionMateo Falcon
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
Blanca Elia Jiménez Guzmán
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
tavo_3315_
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
Daniel Guaycha
 
5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx
AngelGabrielTorresGa
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
pepelebu1313
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
TAtiizz Villalobos
 

La actualidad más candente (20)

Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
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
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Metodo de ordenacion por Insercion
 Metodo de ordenacion por Insercion Metodo de ordenacion por Insercion
Metodo de ordenacion por Insercion
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 

Similar a Mètodos de Ordenaciòn y bùsqueda

concepto de estructuras de datos
concepto de estructuras de datosconcepto de estructuras de datos
concepto de estructuras de datos
Eduardo Robayo Castro
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1VivianaG
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
IrvingMoran4
 
Arreglos en c++2020
Arreglos en c++2020Arreglos en c++2020
Arreglos en c++2020
Sol Hernández
 
Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)
jairml
 
Arreglos
ArreglosArreglos
Arreglos
Cecilia Loeza
 
Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo ikky2345
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
OsirysRock
 
Tema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdfTema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdf
GabrieleGalieroCasay1
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
ashildir
 
Arreglos enitmar
Arreglos enitmarArreglos enitmar
Arreglos enitmar
La Morena Guariqueña
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-BvictoriaRJ
 
Arrays
ArraysArrays
Anderson martinez arreglos
Anderson martinez arreglosAnderson martinez arreglos
Anderson martinez arreglos
adrmrtinzm
 
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
ejosue23
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos OrdenamientoDaniel Guaycha
 
arrays
arraysarrays
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Eli Diaz
 

Similar a Mètodos de Ordenaciòn y bùsqueda (20)

concepto de estructuras de datos
concepto de estructuras de datosconcepto de estructuras de datos
concepto de estructuras de datos
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Arreglos en c++2020
Arreglos en c++2020Arreglos en c++2020
Arreglos en c++2020
 
Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)
 
Arreglos
ArreglosArreglos
Arreglos
 
Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Tema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdfTema 5 - Estructuras de datos.pdf
Tema 5 - Estructuras de datos.pdf
 
Tema6
Tema6Tema6
Tema6
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 
Arreglos enitmar
Arreglos enitmarArreglos enitmar
Arreglos enitmar
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-B
 
Arrays
ArraysArrays
Arrays
 
Anderson martinez arreglos
Anderson martinez arreglosAnderson martinez arreglos
Anderson martinez arreglos
 
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
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
arrays
arraysarrays
arrays
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 

Más de Facultad de Ciencias y Sistemas

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
CSS3
CSS3CSS3
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
Facultad de Ciencias y Sistemas
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
Facultad de Ciencias y Sistemas
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
Facultad de Ciencias y Sistemas
 
06 clases-en-c
06 clases-en-c06 clases-en-c
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
Facultad de Ciencias y Sistemas
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
Facultad de Ciencias y Sistemas
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
Facultad de Ciencias y Sistemas
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
Facultad de Ciencias y Sistemas
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
Facultad de Ciencias y Sistemas
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
Facultad de Ciencias y Sistemas
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
Facultad de Ciencias y Sistemas
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
Facultad de Ciencias y Sistemas
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
Facultad de Ciencias y Sistemas
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
Facultad de Ciencias y Sistemas
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
Facultad de Ciencias y Sistemas
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
Facultad de Ciencias y Sistemas
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
Facultad de Ciencias y Sistemas
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
Facultad de Ciencias y Sistemas
 

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Último

Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 

Último (20)

Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 

Mètodos de Ordenaciòn y bùsqueda

  • 1. Introducción a la Programación. Tema: Búsqueda, ordenación y mezcla de arreglos Unidad II: Elementos de Programación .
  • 2. 2.8 Definición de arreglos unidimensionales y bidimensionales. 2.9 Búsqueda, ordenación y mezcla de arreglos. 2.10 Estructura de datos. 2.11 Programación modular. 2.12 Definición de punteros. 2.13 Estructuras dinámicas. Unidad II: Elementos de Programación
  • 3. Bibliografía Algoritmos computacionales. Introduccción al análisis y diseño. Editorial Addison Wesley. Tercera edición. 2002. Baase Sara, Van Gelder Allen. Capítulo 4. Página 149 – 151.
  • 4. Bibliografía Cómo programar C/C++ y Java Introduccción al análisis y diseño. Editorial Pearson Prentice Hall Cuarta edición. 2004. Deitel. Deitel. Capítulo 6. Página 197.
  • 5. Bibliografía Curso de programación C/C++ Fco. Javier Ceballos Sierra. Profesor titular de la Escuela Universitaria Politécnica Universidad de Alcalá de Henares. Editorial RA-MA. Páginas 492, 493, 495-498, 502, 503.
  • 6. Bibliografía Fundamentos de Programación con el Lenguaje de Programación C++ Vicente Benjumea y Manuel Roldán 31 de mayo de 2017 UNIVERSIDAD DE MÁLAGA. Dpto. Lenguajes y CC. Computación E.T.S.I. Informática Páginas: 85-88, 90,
  • 7. Búsqueda, ordenación y mezcla de arreglos. Los algoritmos para ordenar sirven para acomodar en orden los elementos de un conjunto. Ésto fue uno de los primeros problemas que se estudiaron intensamente en las ciencias de la computación. Muchas de las aplicaciones más conocidas del paradigma de diseño de algoritmos Divide y Vencerás son algoritmos de ordenamiento. Durante los años sesenta, cuando el procesamiento comercial de datos se automatizó en gran escala, el programa de ordenamiento era el que se ejecutaba con mayor frecuencia en muchas instalaciones de cómputo.
  • 8. Búsqueda, ordenación y mezcla de arreglos. Hay varias razones para estudiar los algoritmos de ordenamiento. Entre ellas están: 1.Tienen utilidad práctica porque el ordenamiento es una actividad frecuente. 2.El trabajo con conjuntos grandes de datos en las computadoras se facilita si los datos están ordenados. 3.Se ha ideado una buena cantidad de algoritmos para ordenar, ya que es posible enfocar un problema dado desde muchos puntos de vista distintos.
  • 9. Búsqueda, ordenación y mezcla de arreglos. Los algoritmos a estudiar se denominan ordenamientos internos porque se supone que los datos están en la memoria de acceso aleatorio de alta velocidad de la computadora. Los algoritmos para ordenar grandes conjuntos de datos almacenados en dispositivos de almacenamiento, con restricciones sobre la forma de acceder a los datos, se denominan ordenamientos externos.
  • 10. Búsqueda, ordenación y mezcla de arreglos. Ejemplos: 1.Un banco ordena todos los cheques por número de cuenta, de manera que puede preparar los estados individuales del banco al final de cada mes. 2.Las empresas de telefonía ordenan sus listas de cuentas por apellido y, dentro de este ordenamiento, hacen otro por nombre para facilitar la búsqueda de números telefónicos. 3.Virtualmente todas las empresas deben ordenar algún tipo de dato y, en muchos casos, cantidades masivas de éstos.
  • 11. Método de la burbuja: La idea de este algoritmo consiste en hacer repetidas pasadas sobre el array, trasladando en cada una, el elemento más pequeño hasta el principio del array. Este algoritmo se conoce como ordenación por el método de la burbuja, porque si se consideran los elementos como si estuviera en posición vertical y fueran burbujas con un cierto peso en un depósito de agua, dichas burbujas irían ascendiendo en función de su valor. Métodos de ordenación.
  • 12. Métodos de ordenación. Método de la burbuja: 1. Comparamos el primer elemento con el segundo, el segundo con el tercero, el tercero con el cuarto, etc. Cuando el resultado de una comparación sea "mayor que'', se intercambian los valores de los elementos comparados. Con esto conseguimos llevar el valor mayor a la posición n. 2. Repetimos el punto 1, ahora para los n-1 primeros elementos de la lista. Con esto conseguimos llevar el valor mayor de éstos a la posición n-1. 3. Repetimos el punto 1, ahora para los n-2 primeros elementos de la lista, y así sucesivamente. 4. Se termina después de repetir el proceso descrito, n-1 veces, o cuando al finalizar la ejecución del iésimo proceso no haya habido ningún cambio.
  • 13. Método de la burbuja: <función clasificar(array "a" de "n" elementos)> ["a" es un array cuyos elementos son as, a1, ..., an-1] n=n-1 DO WHILE ("a" no esté ordenado y n > 0 ) i= 1 DOWHILE(i<=n) IF(a[i-l]>a[i])THEN permutar a[i-1] con a[i] ENDIF i = i+1 ENDDO n=n-1 ENDDO END <clasificar> Métodos de ordenación.
  • 14. Método de la burbuja: #include <iostream> using namespace std; #include <cstdlib> int const DIM = 10; typedef float tArray[DIM]; void rellenarArray(tArray); void ordenarArray(tArray); void mostrarArray(const tArray); Métodos de ordenación.
  • 15. Método de la burbuja: int main() {tArray miArray; rellenarArray(miArray); ordenarArray(miArray); mostrarArray(miArray); system("PAUSE"); return 0;} void rellenarArray(tArray miArray){ cout << "Introduzca los 10 elementos del array" << endl; for (int i = 0; i < DIM; i++) { // Rellenamos las 10 posiciones del array cin >> miArray[i];}} Métodos de ordenación.
  • 16. Método de la burbuja: void ordenarArray(tArray miArray){ float temporal; for (int i = 0;i < DIM; i++) {for (int j = 0; j< DIM-1; j++){ if (miArray[j] < miArray[j+1]) {/ * Ordena el array de mayor a menor, cambiar el "<" a ">" para ordenar de menor a mayor*/ temporal = miArray[j]; miArray[j] = miArray[j+1]; miArray[j+1] = temporal;}}}} Métodos de ordenación.
  • 17. Método de la burbuja: void mostrarArray(const tArray miArray){ cout << "Mostrando array ordenado..." << endl; for (int i = 0; i < DIM; i++) // Imprime las 10 posiciones cout << miArray[i] << endl;} Métodos de ordenación.
  • 18. Método de inserción: 1.Inicialmente, se ordenan los dos primeros elementos del array. 2.Luego se inserta el tercer elemento en la posición correcta con respecto a los dos primeros. 3.A continuación se inserta el cuarto elemento en la posición correcta con respecto a los tres primeros elementos ya clasificados. 4.Y así sucesivamente hasta llegar al último elemento del array. Métodos de ordenación.
  • 19. Método de inserción: <función inserción(array "a" de "n" elementos)> ["a" es un array cuyos elementos son a0, a1, ..., an-1] i= 1 DOWHILE(i<n) x = a[i] insertar x en la posición correcta entre a0y ai ENDDO END <inserción> Métodos de ordenación.
  • 20. Método de inserción: #include<iostream> #include"leearreglo.h" using namespace std; #define largo 50 void insercionDirecta(int A[],int n) { int i,j,v; for (i = 1; i < n; i++) { v = A[i]; j = i - 1; while (j >= 0 && A[j] > v) { A[j + 1] = A[j]; j--; } A[j + 1] = v; } } Métodos de ordenación.
  • 21. Método de inserción: void main () { int A[largo],n; do{ cout<<"Cantidad de numeros a ingresar: ";cin>>n; if(n<=0||n>largo) cout<<"Debe ingresar un valor > a 0 y < a "<<largo<<endl; }while(n<=0||n>largo); leeCadena(n,A); insercionDirecta(A,n); muestraCadena(n,A);} Métodos de ordenación.
  • 22. Método de inserción: #include<iostream> using namespace std; void leeCadena(int cant,int n[]) { int i; for(i=0;i<cant;i++) { cout<<"Ingresa numero "<<i+1<<": "; cin>>n[i]; } } Métodos de ordenación.
  • 23. Método de inserción: void muestraCadena(int cant,int n[]) { int i; for(i=0;i<cant;i++) { cout<<n[i]<<endl; } } Métodos de ordenación.
  • 24. Método quicksort: 1.Se selecciona un valor perteneciente al rango de valores del array. Este valor se puede escoger aleatoriamente o haciendo la media de un pequeño conjunto de valores tomados del array. El valor óptimo sería la mediana (el valor que es menor o igual que los valores correspondientes a la mitad de los elementos del array y mayor o igual que los valores correspondientes a la otra mitad). No obstante, incluso en el peor de los casos (el valor escogido está en un extremo), quicksort funciona correctamente. Métodos de ordenación.
  • 25. Método quicksort: 2.Se divide el array en dos partes, una con todos los elementos menores que el valor seleccionado y otra con todos los elementos mayores o iguales. 3.Se repiten los puntos 1 y 2 para cada una de las partes en la que se ha dividido el array, hasta que esté ordenado, 4.El proceso descrito es esencialmente recursivo. Métodos de ordenación.
  • 26. Mètodo quicksort <función qs(array "a" )> Se elige un valor x del array DO WHILE ( "a" no esté dividido en dos partes ) [dividir "a" en dos partes: a_inf y a_sup] a_inf con los elementos ai < x a_sup con los elementos ai>= x ENDDO IF ( existe a_inf ) THEN qs( a_inf ) ENDIF IF ( existe a_sup ) THEN qs( a_sup) ENDIF END <qs> Métodos de ordenación.
  • 28. Búsqueda lineal o secuencial: Este método de búsqueda, aunque válido, es el menos eficiente. Se basa en comparar el valor que se desea buscar con cada uno de los valores del array. El array no tiene por qué estar clasificado. Métodos de búsqueda.
  • 29. Búsqueda lineal o secuencial: Consiste en ir recorriendo secuencialmente la colección de datos hasta encontrar el elemento buscado o, en última instancia, hasta recorrer la colección completa, en cuyo caso podemos estar seguros que el elemento buscado no se encuentra en la colección. La búsqueda lineal es adecuada como mecanismo de búsqueda general en colecciones de datos sin organización conocida. Métodos de búsqueda.
  • 30. Búsqueda secuencial: clase Busqueda { privado caracter vec(6) publico cargar(caracter valor, entero i){ vec(i) = valor } publico entero secuencial (caracter x) { entero bandera = 0 entero indice = 0, i = 1 Mientras ((bandera == 0 ) O ( i <= 6)) si (vec (i ) == x) Entonces bandera = 1 indice = i Fin Si i = i + 1 Fin Mientras retornar indice}} Métodos de búsqueda.
  • 31. Búsqueda secuencial: INICIO { caracter valores entero veces, resp Busqueda obj Para veces=1, veces, 1 Imprimir (“Teclee una letra:”) Leer (valores) obj.cargar (valores,veces) Fin Para Imprimir (“Introduzca el carácter a buscar:”) Leer (valores) resp= obj.secuencial (valores) Si (resp == 0) Entonces Imprimir (“No se encontro”, valores, “ en el vector”) De Otro Modo Imprimir (“El caracter” , valores , “ esta en la posición”, resp) Fin Si FIN Métodos de búsqueda.
  • 32. Búsqueda secuencial: <función Búsqueda_S( array a, valor que queremos buscar)> i=0 DO WHILE ( no encontrado ) IF ( valor = a[i] ) encontrado ENDIF i = i+l ENDDO END <Búsqueda_S> Métodos de búsqueda.
  • 33. Búsqueda secuencial: int buscar_alt(int x, const Vector& v) {int idx = int(v.size()); bool ok = false; for (int i = 0; (i < int(v.size())) && ! ok; ++i) { if (x == v[i]) { ok = true; idx = i;} } return idx;} Métodos de búsqueda.
  • 34. Búsqueda secuencial: Como puede observarse, recorremos uno a uno todos los elementos hasta que podemos responder en sentido afirmativo o negativo. Respondemos en sentido negativo (el elemento no se encuentra) si el índice del siguiente elemento a probar está más allá del último elemento del array. Respondemos en sentido positivo si el elemento indicado por la variable i contiene el elemento buscado. En tal caso, acaba el bucle y se devuelve dicha posición i. Nótese que si el elemento no se encuentra se devuelve v.size(), que es una posición no válida del array. Métodos de búsqueda.
  • 35. Búsqueda secuencial: La búsqueda secuencial es simple, pero requiere recorrer todo el array para estar seguros de que el elemento a buscar no se encuentra en la colección. Si el array tiene gran cantidad de elementos y necesitamos que las búsquedas se realicen de forma rápida, este mecanismo podría no ser adecuado. Si estamos interesados en acelerar el proceso de búsqueda, necesitamos información adicional que de pistas para poder realizar una implementación más eficiente. Necesitamos información acerca de la organización interna de los elementos en el array. Hay diferentes formas de organizar la información en el array que nos permiten implemementar algoritmos de búsqueda más eficientes. Métodos de búsqueda.
  • 36. Búsqueda binaria: Un método eficiente de búsqueda, que puede aplicarse a los arrays clasificados, es la búsqueda binaria. Partiendo de que los elementos del array están almacenados en orden ascendente. Métodos de búsqueda.
  • 37. Búsqueda binaria: La idea consiste en seleccionar un elemento de la colección y comprobar si se trata del elemento buscado. Si es así el proceso termina con éxito, pero si no, podemos aprovechar que sabemos que los elementos se encuentran ordenados y descartar todos los elementos que se encuentran a la derecha del mismo o a su izquierda (según la relación entre el valor seleccionado y el valor buscado). Este proceso se repite hasta encontrar el elemento o hasta que no queden elementos en la colección, en cuyo caso el elemento no habrá sido encontrado. Métodos de búsqueda.
  • 38. Búsqueda binaria: 1. Se selecciona el elemento del centro o aproximadamente del centro del array. Si el valor a buscar no coincide con el elemento seleccionado y es mayor que él, se continúa la búsqueda en la segunda mitad del array. 2. Si, por el contrario, el valor a buscar es menor que el valor del elemento seleccionado, la búsqueda continúa en la primera mitad del array. En ambos casos, se halla de nuevo el elemento central, correspondiente al nuevo intervalo de búsqueda, repitiéndose el ciclo. 3. El proceso se repite hasta que se encuentra el valor a buscar, o bien hasta que el intervalo de búsqueda sea nulo, lo que indicará que el elemento buscado no está en el array. Métodos de búsqueda.
  • 39. Búsqueda binaria: <función Búsqueda-B( array a, valor que queremos buscar )> DO WHILE ( exista un intervalo donde buscar ) x = elemento mitad del intervalo de búsqueda IF(valor=x)THEN encontrado ELSE IF(valor>x)THEN buscar "valor" en la segunda mitad del intervalo de búsqueda ENDIF IF(valor<x)THEN buscar "valor" en la primera mitad del intertalo de búsqueda ENDIF ENDIF ENDDO END <Búsqueda_B> Métodos de búsqueda.
  • 40. Búsqueda binaria: /* busca la posición del primer elemento igual a x, si no se encuentra, retorna v.size()*/ unsigned buscar_bin(int x, const Vector& v) {unsigned i = 0 ; unsigned f = v.size() ; unsigned m = (i + f) / 2 ; while ((i < f) && (x != v[m])) { if (x < v[m]) {f = m ;} else {i = m + 1 ;} m = (i + f) / 2 ;} if (i >= f) {m = int(v.size());} return m; } Métodos de búsqueda.