Upload
percy-vivanco-munoz
View
25
Download
0
Embed Size (px)
DESCRIPTION
desarrollo de estructuras con lenguaje de programacion en c++
Citation preview
Tema 11Bsqueda y ordenacin en arreglos
OrdenacinEs un proceso que altera el orden de los elementos de un conjunto.Tiene asociada una relacin de ordenNmeros: valorLetras: alfabetoAuto: Velocidad? Tamao? Autonoma?Amigos: ..?La ordenacin puede ser ascendente o descendente.
OrdenacinMtodosBurbuja (Bubble sort)SeleccinInsercinBurbuja bidireccionalRpido (Quicksort)
Bubble sortLos elementos ms pesados bajanLos elementos ms livianos subenCuando ya no puede bajar ms se sigue con el resto.
Bubble sort1-Como r es ms pesada que a,r baja y a sube2-Como r es ms pesada que c,r baja y c sube
SeleccinSe selecciona el minimo valor entre los N elementos y se intercambia con el primero.Se repite la operacin con los N-1 elementos restantes.
InsercinOrdena el subarreglos de manera crecienteOrdena los primeros dos elementosLuego va insertando los siguientes en su posicin ordenada en el subarreglo.
QuicksortLos algoritmos anteriores ejecutan un numero de instruccin del orden de N2Ordenar 10 elementos ejecuta a100 instrucciones.Ordenar 100 elementos ejecuta a10000 instrucciones.Ordenar 1000 elementos ejecuta a1000000 instrucciones.
QuicksortN de elementosTiempo de ejecucinaN2
QuicksortQuicksort es un algoritmo de proposito general.Es en la mayoria de los casos el ms eficiente.Tiene un orden a N log(N)Tiene una estructura recursiva.
QuicksortN de elementosTiempo de ejecucinaNlog(N)
BsquedaConsiste en buscar un elemento dentro de un conjuntoRequiere de una relacin de igualdadNmeros: Igual valorCuntos decimales considerar?Letras: mismo smboloMayusculas y minsculas?AutosModelo y aoPlaca patenteCodigo chasisEtc
BsquedaMtodosSecuencialBinaria
Bsqueda secuencialRecorrer uno por uno los elementos.Comparar segn sea el criterio.Se puede querer recuperar el valor o ela posicin.Tiene un orden aN
Bsqueda secuencialint secuencial_search(int numeros[], int valor){
int i=0;for(i=0;i
Bsqueda secuencialEn arreglos bidimensionales el algortimo es similar.Se puede hacer por filas o por columas.Esta decision puede afectar el rendimientoPor lo general, preferir por filas.
Bsqueda secuencialint bisecuencial_search(int numeros[][N], int valor){
int i,j;for(i=0;i
Bsqueda binariaMuy rpidaRequiere datos ordenadosNo sirve para recuperar la posicin original.Encierra el numero bscado achicando a la mitad el intervalo que parece contenerlo.Tiene un orden alog2N