SlideShare una empresa de Scribd logo
MÉTODOS DE
ORDENAMIENTO
INTERNOS
6. ORDENACIÓN INTERNA
Algoritmos de ordenamiento por intercambio
 Burbuja
 Quicksort
 Shellsort
Algoritmos de ordenamiento por distribución
 Radix
INSERCIÓN DIRECTA
• Este método consiste en buscar el lugar adecuado para cada registro
recorriendo los registros anteriores para dejar un lugar vacío para el
nuevo elemento. El proceso de acomodo de cada elemento se repite
hasta llegar al último elemento, los elementos previos al elemento a
acomodar se encuentran en orden.
• Este es el método usado por los jugadores de cartas para acomodar su
juego.
ORDENAMIENTO POR INSERCIÓN
DIRECTA
Variables
– K arreglo de datos a ordenar
– V variable auxiliar
– i, j índices para el arreglo
– N número de elementos
InserciónDirecta
Inicio
Para i=2 hasta N incremento 1
v = K(i) //elemento a acomodar
j = i
Mientras (j > 1) y (K(j-1) > v)
K(j) = K(j-1) //mueve elementos
j = j-1
K(j) = v // inserta el elemento actual
Fin
3 8 2 1 4
1 2 3 4 5 6
2K
3 8
2 3 8
1 2 3 8
1 2 3 4 8
1 2 2 3 4 8
BURBUJA (BUBBLE)
• Este método realiza comparaciones de todas las posibles parejas de
llaves intercambiando aquellas que se encuentran fuera de orden.
• Utiliza un proceso repetitivo comparando las parejas de datos
adyacentes del inicio al final del arreglo donde, después de la primer
pasada la llave mayor queda en la última posición del arreglo.
BURBUJA (BUBBLE)
Variables
• n es el total de elementos
• K arreglo de llaves
• t variable auxiliar para el intercambio
• i,j variables para los indices
Burbuja
Inicio
para i= n-1 ; i>0 ; i--
para j=0; i>j; j++
si (k[j] > k[j+1])
t = k[j];
k[j]= k[j+1];
k[j+1] = t;
Fin
3 8 2 1 4
0 1 2 3 4 5
2
3 8 2 1 4 2
3 2 8 1 4 2
3 2 1 8 4 2
3 2 1 4 8 2
3 2 1 4 2 8
Primera
pasada
3 2 1 4 2 8
2 3 1 4 2 8
2 1 3 4 2 8
2 1 3 4 2 8
2 1 3 2 4 8
Segunda
pasada
2 1 3 2 4 8
1 2 3 2 4 8
1 2 3 2 4 8
1 2 2 3 4 8
Tercer
pasada
1 2 2 3 4 8
1 2 2 3 4 8
1 2 2 3 4 8
Cuarta
pasada
1 2 2 3 4 8
1 2 2 3 4 8
Quinta
pasada
SHELL SORT
• El método shell divide el arreglo a ordenar en varios grupos
haciendo comparaciones e intercambios entre ellos. El tamaño
de los subgrupos se decrementa y el número de subgrupos se
incrementa hasta llegar a tener n grupos de tamaño 1. A partir
de este punto, el método funciona como el de inserción directa.
• El tamaño de los subgrupos así como el total de estos puede
determinarlos el usuario para hacer mas eficiente el algoritmo.
SHELL SORTVariables
– K arreglo de datos a ordenar
– H tamaño del grupo
– i, j índices para el arreglo
– V variable auxiliar
– N número de elementos
– grupo arreglo con los tamaños de grupo
Shellsort
Inicio
grupo = [ 21, 7, 3, 1]
para g=0; g<4; g++
h=grupo[g];
para i=h; i<n; i++
v=k[i];
j=i;
mientras (j>=h && a[j-h]>v)
k[j]=k[j-h];
j=j-h;
k[j]=v;
Fin
3 7 9 0 5 1 6 8 4 2 0 6 1 5 7 3 4 9 8 2
3 7 9 0 5 1 6 8 4 2 0 6 1 5 7 3 4 9 8 2
3 3 2 0 5 1 5 7 4 4 0 6 1 6 8 7 9 9 8 2
3 3 2 5 7 4 1 6 80 5 1 4 0 6 7 9 9 8 2
0 0 1 3 3 4 5 6 81 2 2 4 5 6 7 7 9 8 9
0 0 1 1 2 2 3 3 4 4 5 6 5 6 8 7 7 9 8 9
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9
RADIX
• Radix Sort (ordenamiento Radix) es un algoritmo de
ordenamiento estable* para ordenar elementos identificados
por llaves (o claves) únicas. Cada llave debe ser una cadena o
un número capaz de ser ordenada alfanuméricamente.
• Este método ejecuta un número de repeticiones igual al número
de caracteres de las llaves a ordenar. El Radix Directo, inicia
con el dígito más a la derecha repartiendo los datos en
“canastas”, estos datos se reparten de nuevo de acuerdo al
siguiente dígito y así sucesivamente hasta terminar con el dígito
de mas a la izquierda.
329 248 123 423 226 825 132 335 231 432 256 218
Distribución y
reacomodo
Digito
derecho
329248123
423
226825132
335
231
432 256 218
231 132 432 123 423 825 335 226 256 248 218 329
231
132
432
123
423
825
335226
256248218
329
218 123 423 825 226 329 231 132 432 335 248 256
Distribución y
reacomodo
Digito
central
231
132 432
123 423 825
335226
256
248
218 329
218 123 423 825 226 329 231 132 432 335 248 256
Distribución y
reacomodo
Digito
izquierdo
123 132 218 226 231 248 256 329 335 423 432 825
EJEMPLO
ALGORITMO:
QUICKSORT
DESCRIPCIÓN
• Se elige un pivote.
• Se reubican los elementos respecto al pivote los
menores antes, los mayores atrás.
• El arreglo queda separado en dos subarreglos
• Se repite el proceso con los subarreglos
resultantes
• El arreglo esta ordenado
DEMOSTRACIÓN
• Suponiendo que el número total de elementos a ordenar es
potencia de dos, es decir, n = 2k. De aquí podemos ver que k =
log2(n), donde k es el número de divisiones que realizará el
algoritmo.
• En la primera fase del algoritmo habrán n comparaciones, en la
segunda fase el algoritmo creará dos sublistas
aproximadamente de tamaño n/2. El número total de
comparaciones de estas dos sublistas es: 2(n/2) = n. En la
tercera fase el algoritmo procesará 4 sublistas más, por tanto el
número total de comparaciones en esta fase es 4(n/4) = n.
• En conclusión, el número total de comparaciones que hace el
algoritmo es:
TÉCNICAS DE ELECCIÓN DE PIVOTE
• El algoritmo básico del método Quicksort consiste en tomar
cualquier elemento de la lista al cual denominaremos como
pivote, dependiendo de la partición en que se elija, el algoritmo
será más o menos eficiente.
• Tomar un elemento cualquiera como pivote tiene la ventaja de
no requerir ningún cálculo adicional, lo cual lo hace bastante
rápido. Sin embargo, esta elección «a ciegas» siempre provoca
que el algoritmo tenga un orden de O(n²) para ciertas
permutaciones de los elementos en la lista.
• Otra opción puede ser recorrer la lista para saber de antemano
qué elemento ocupará la posición central de la lista, para
elegirlo como pivote.
ORDENAMIENTO POR
CONTEO
• Este método utiliza un arreglo auxiliar para contabilizar el
numero de llaves que son mayores que la llave actual.
• El arreglo de contadores, especifica la posición final donde
debería estar cada elemento.
ORDENAMIENTO POR
CONTEO
Variables
– K arreglo de datos a ordenar
– Cont arreglo de contadores
– N número de elementos a ordenar
ComparacionPorConteo
Inicio
inicializar el arreglo de contadores con cero en todas sus posiciones
Para i=N hasta 2 decremento 1
Para j=i-1 hasta 1 decremento 1
si K(i) < K(j) Cont(j)++
sino Cont(i)++
Fin
EJEMPLO
23 11 19 8 7
1 2 3 4 5
0 0 0 0 0
1 2 3 4 5
K
Cont
1 1 1 1 0
2 2 2 1 0
3 2 3 1 0
4 2 3 1 0
Inicial
Primera pasada
Segunda pasada
Tercera pasada
Cuarta pasada
ORDENAMIENTO POR
DISTRIBUCIÓN
• Este método es bueno aplicarlo cuando existen muchas claves
repetidas y estas se encuentran en un rango pequeño entre u y
v.
Rango u<=K1..n<=v
• Utiliza un arreglo contador con posiciones desde u hasta v,
además de un arreglo para generar la salida.
ORDENAMIENTO POR
DISTRIBUCIÓNVariables
– K arreglo de datos a ordenar
– Cont arreglo de contadores con índices desde u hasta v
– S arreglo de salida
– N número de elementos a ordenar
– U llave menor
– V llave mayor
Distribución
Inicio
inicializar el arreglo de contadores con cero en todas sus posiciones
Para i=1 hasta N incremento 1
Cont(K(i))++ // cuenta las llaves iguales
Para j=u+1 hasta v incremento 1
Cont(j) = Cont(j) + Cont(j-1) // localiza la posición de cada llave
Para j=N hasta 1 decremento 1
i = Cont(K(j))
S(i) = K(j) // envía la llave al vector de salida
Cont(K(j)) = Cont(K(j)) - 1
Fin
EJEMPLO
29 31 29 34 29
1 2 3 4 5
Arreglo a ordenar K
Arreglo de contadores
Cont
Arreglo de salida S 29 34
Inicial
Cuenta llaves repetidas
Posición de cada llave
Acomodo en la salida
0 0 0 0 0
29 30 31 32 33 34
3 0 1 0 0
3 3 4 4 4
0
1
5
2 3 4 4 4 4
1 2 3 4 5
EJERCICIOS PARA REALIZAR
• Ingresar 10 números aleatorios y ordenarlos por los siguientes
métodos
– Quicksort
– Shell
– Insercion

Más contenido relacionado

La actualidad más candente

Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
Kaneki04
 
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
José Antonio Sandoval Acosta
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
Alvaro Enrique Ruano
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Lalo Chooper
 
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
José Antonio Sandoval Acosta
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
linkinpark03
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Smith Suarez Vargas
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
Robert Rivero
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
Andre Jaramillo
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
ITCV
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
Carlos Alberto Cuervo Cardenas
 
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
 
Recursividad
RecursividadRecursividad
Recursividad
TAtiizz Villalobos
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
Omarzingm
 
Listas
ListasListas
Quicksort
QuicksortQuicksort
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
Daniel Gomez Jaramillo
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
Christopher Bonilla Noguera
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
Edwin Narváez
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 

La actualidad más candente (20)

Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
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
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
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
 
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
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
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
 
Recursividad
RecursividadRecursividad
Recursividad
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Listas
ListasListas
Listas
 
Quicksort
QuicksortQuicksort
Quicksort
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 

Similar a 3. algoritmos de ordenamiento interno

metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
jorgeulises3
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
Jorge Ake Pech
 
Unidad 5
Unidad 5Unidad 5
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptx
FranSilvo
 
Métodos de ordenamiento
Métodos de ordenamiento Métodos de ordenamiento
Métodos de ordenamiento
'diego Liinares'
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
compumet sac
 
Criptografia
CriptografiaCriptografia
Criptografia
javierpatinoabella
 
1_Metodos.doc
1_Metodos.doc1_Metodos.doc
1_Metodos.doc
PepePerez532562
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
OsirysRock
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Rubi Veronica Chimal Cuxin
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
sirekarol
 
SISTEMA DECIMAL Y OCTAL
SISTEMA DECIMAL Y OCTALSISTEMA DECIMAL Y OCTAL
SISTEMA DECIMAL Y OCTAL
Magyll
 
Gutierrez_Derick_Laboratorio4.pptx
Gutierrez_Derick_Laboratorio4.pptxGutierrez_Derick_Laboratorio4.pptx
Gutierrez_Derick_Laboratorio4.pptx
dags2
 
Clasificacion de los sistemas numericos y conversiones Josué Cerrud.pptx
Clasificacion de los sistemas numericos y conversiones Josué Cerrud.pptxClasificacion de los sistemas numericos y conversiones Josué Cerrud.pptx
Clasificacion de los sistemas numericos y conversiones Josué Cerrud.pptx
Josué Cerrud
 
Inf 2316(proyecto)
Inf 2316(proyecto)Inf 2316(proyecto)
Inf 2316(proyecto)
jair_fni
 
Distribución de los recursos
Distribución de los recursosDistribución de los recursos
Distribución de los recursos
Daniel Salinas Jiménez
 
Quicksort
QuicksortQuicksort
Quicksort
Rodolfo Delgado
 
Sistemas numericos y conversiones
Sistemas numericos y conversionesSistemas numericos y conversiones
Sistemas numericos y conversiones
AngelX6
 

Similar a 3. algoritmos de ordenamiento interno (20)

metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
Algoritmos ordenación.pptx
Algoritmos ordenación.pptxAlgoritmos ordenación.pptx
Algoritmos ordenación.pptx
 
Métodos de ordenamiento
Métodos de ordenamiento Métodos de ordenamiento
Métodos de ordenamiento
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Criptografia
CriptografiaCriptografia
Criptografia
 
1_Metodos.doc
1_Metodos.doc1_Metodos.doc
1_Metodos.doc
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
 
SISTEMA DECIMAL Y OCTAL
SISTEMA DECIMAL Y OCTALSISTEMA DECIMAL Y OCTAL
SISTEMA DECIMAL Y OCTAL
 
Gutierrez_Derick_Laboratorio4.pptx
Gutierrez_Derick_Laboratorio4.pptxGutierrez_Derick_Laboratorio4.pptx
Gutierrez_Derick_Laboratorio4.pptx
 
Clasificacion de los sistemas numericos y conversiones Josué Cerrud.pptx
Clasificacion de los sistemas numericos y conversiones Josué Cerrud.pptxClasificacion de los sistemas numericos y conversiones Josué Cerrud.pptx
Clasificacion de los sistemas numericos y conversiones Josué Cerrud.pptx
 
Inf 2316(proyecto)
Inf 2316(proyecto)Inf 2316(proyecto)
Inf 2316(proyecto)
 
Distribución de los recursos
Distribución de los recursosDistribución de los recursos
Distribución de los recursos
 
Quicksort
QuicksortQuicksort
Quicksort
 
Sistemas numericos y conversiones
Sistemas numericos y conversionesSistemas numericos y conversiones
Sistemas numericos y conversiones
 

Más de Fernando Solis

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
AULA INVERTIDA.pdf
AULA INVERTIDA.pdfAULA INVERTIDA.pdf
AULA INVERTIDA.pdf
Fernando Solis
 
Subcadenas-en-C
Subcadenas-en-CSubcadenas-en-C
Subcadenas-en-C
Fernando Solis
 
BÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN CBÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN C
Fernando Solis
 
Almacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructuraAlmacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructura
Fernando Solis
 
Entrada y salida de datos
Entrada y salida de datosEntrada y salida de datos
Entrada y salida de datos
Fernando Solis
 
Longitud y Concatenacion
Longitud y ConcatenacionLongitud y Concatenacion
Longitud y Concatenacion
Fernando Solis
 
Lectura de datos de cadena
Lectura de datos de cadenaLectura de datos de cadena
Lectura de datos de cadena
Fernando Solis
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)
Fernando Solis
 
Archivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de TextoArchivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de Texto
Fernando Solis
 
DEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGSDEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGS
Fernando Solis
 
Declaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadenaDeclaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadena
Fernando Solis
 
Conversion de Strings
Conversion de StringsConversion de Strings
Conversion de Strings
Fernando Solis
 
Comparacion de arreglos Strings
Comparacion de arreglos StringsComparacion de arreglos Strings
Comparacion de arreglos Strings
Fernando Solis
 
Cadenas y/o strings
Cadenas y/o stringsCadenas y/o strings
Cadenas y/o strings
Fernando Solis
 
Asignacion
AsignacionAsignacion
Asignacion
Fernando Solis
 
Acceso en tipos de datos abstractos
Acceso en tipos de datos abstractosAcceso en tipos de datos abstractos
Acceso en tipos de datos abstractos
Fernando Solis
 
Arreglo Orden Seleccion
Arreglo  Orden SeleccionArreglo  Orden Seleccion
Arreglo Orden Seleccion
Fernando Solis
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de Busqueda
Fernando Solis
 
Quick Sort
Quick SortQuick Sort
Quick Sort
Fernando Solis
 

Más de Fernando Solis (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
AULA INVERTIDA.pdf
AULA INVERTIDA.pdfAULA INVERTIDA.pdf
AULA INVERTIDA.pdf
 
Subcadenas-en-C
Subcadenas-en-CSubcadenas-en-C
Subcadenas-en-C
 
BÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN CBÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN C
 
Almacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructuraAlmacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructura
 
Entrada y salida de datos
Entrada y salida de datosEntrada y salida de datos
Entrada y salida de datos
 
Longitud y Concatenacion
Longitud y ConcatenacionLongitud y Concatenacion
Longitud y Concatenacion
 
Lectura de datos de cadena
Lectura de datos de cadenaLectura de datos de cadena
Lectura de datos de cadena
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)
 
Archivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de TextoArchivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de Texto
 
DEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGSDEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGS
 
Declaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadenaDeclaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadena
 
Conversion de Strings
Conversion de StringsConversion de Strings
Conversion de Strings
 
Comparacion de arreglos Strings
Comparacion de arreglos StringsComparacion de arreglos Strings
Comparacion de arreglos Strings
 
Cadenas y/o strings
Cadenas y/o stringsCadenas y/o strings
Cadenas y/o strings
 
Asignacion
AsignacionAsignacion
Asignacion
 
Acceso en tipos de datos abstractos
Acceso en tipos de datos abstractosAcceso en tipos de datos abstractos
Acceso en tipos de datos abstractos
 
Arreglo Orden Seleccion
Arreglo  Orden SeleccionArreglo  Orden Seleccion
Arreglo Orden Seleccion
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de Busqueda
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 

Último

Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...
Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...
Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...
Cátedra Banco Santander
 
Taller Intensivo de Formación Continua 2024
Taller Intensivo de Formación Continua 2024Taller Intensivo de Formación Continua 2024
Taller Intensivo de Formación Continua 2024
maria larios
 
PLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docx
PLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docxPLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docx
PLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docx
william antonio Chacon Robles
 
CUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdf
CUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdfCUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdf
CUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdf
JovannyAguilarGestor
 
Semana 1 Derecho a interponer recursos y reparación.
Semana 1 Derecho a interponer recursos y reparación.Semana 1 Derecho a interponer recursos y reparación.
Semana 1 Derecho a interponer recursos y reparación.
SergioAlfrediMontoya
 
LABERINTOS DE DISCIPLINAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
LABERINTOS DE DISCIPLINAS OLÍMPICAS.  Por JAVIER SOLIS NOYOLALABERINTOS DE DISCIPLINAS OLÍMPICAS.  Por JAVIER SOLIS NOYOLA
LABERINTOS DE DISCIPLINAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
JAVIER SOLIS NOYOLA
 
EJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANA
EJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANAEJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANA
EJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANA
dairatuctocastro
 
Reglamento del salón - Intensa-mente.pdf
Reglamento del salón - Intensa-mente.pdfReglamento del salón - Intensa-mente.pdf
Reglamento del salón - Intensa-mente.pdf
Adri G Ch
 
PPT: Un día en el ministerio de Jesús.pptx
PPT: Un día en el ministerio de Jesús.pptxPPT: Un día en el ministerio de Jesús.pptx
PPT: Un día en el ministerio de Jesús.pptx
https://gramadal.wordpress.com/
 
Flipped Classroom con TIC (1 de julio de 2024)
Flipped Classroom con TIC (1 de julio de 2024)Flipped Classroom con TIC (1 de julio de 2024)
Flipped Classroom con TIC (1 de julio de 2024)
Cátedra Banco Santander
 
Plataformas de vídeo online (2 de julio de 2024)
Plataformas de vídeo online (2 de julio de 2024)Plataformas de vídeo online (2 de julio de 2024)
Plataformas de vídeo online (2 de julio de 2024)
Cátedra Banco Santander
 
Curación de contenidos (1 de julio de 2024)
Curación de contenidos (1 de julio de 2024)Curación de contenidos (1 de julio de 2024)
Curación de contenidos (1 de julio de 2024)
Cátedra Banco Santander
 
Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024
Universidad de Deusto - Deustuko Unibertsitatea - University of Deusto
 
03. SESION PERSONAL-PRIMEROS POBLADORES DEL PERÚ.docx
03. SESION PERSONAL-PRIMEROS POBLADORES  DEL PERÚ.docx03. SESION PERSONAL-PRIMEROS POBLADORES  DEL PERÚ.docx
03. SESION PERSONAL-PRIMEROS POBLADORES DEL PERÚ.docx
Giuliana500489
 
Taller intensivo de formación continua. Puebla.
Taller intensivo de formación continua. Puebla.Taller intensivo de formación continua. Puebla.
Taller intensivo de formación continua. Puebla.
OscarCruzyCruz
 
ACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLA
ACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLAACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLA
ACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLA
JAVIER SOLIS NOYOLA
 
Crear infografías: Iniciación a Canva (1 de julio de 2024)
Crear infografías: Iniciación a Canva (1 de julio de 2024)Crear infografías: Iniciación a Canva (1 de julio de 2024)
Crear infografías: Iniciación a Canva (1 de julio de 2024)
Cátedra Banco Santander
 
Introducción a las herramientas de Google Apps (3 de julio de 2024)
Introducción a las herramientas de Google Apps (3 de julio de 2024)Introducción a las herramientas de Google Apps (3 de julio de 2024)
Introducción a las herramientas de Google Apps (3 de julio de 2024)
Cátedra Banco Santander
 
diapositivas paco yunque.pptx cartelera literaria
diapositivas paco yunque.pptx cartelera literariadiapositivas paco yunque.pptx cartelera literaria
diapositivas paco yunque.pptx cartelera literaria
TheeffitaSantosMedin
 
Toxina Botulínica (Botox)
Toxina Botulínica (Botox)Toxina Botulínica (Botox)
Toxina Botulínica (Botox)
Edwin Daniel Maldonado Domínguez
 

Último (20)

Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...
Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...
Fundamentos del diseño audiovisual para presentaciones y vídeos (2 de julio d...
 
Taller Intensivo de Formación Continua 2024
Taller Intensivo de Formación Continua 2024Taller Intensivo de Formación Continua 2024
Taller Intensivo de Formación Continua 2024
 
PLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docx
PLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docxPLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docx
PLAN DE TRABAJO DIA DEL LOGRO 2024 URP.docx
 
CUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdf
CUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdfCUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdf
CUIDADO INTEGRAL DE SALUD DE LA FAMILIA.pdf
 
Semana 1 Derecho a interponer recursos y reparación.
Semana 1 Derecho a interponer recursos y reparación.Semana 1 Derecho a interponer recursos y reparación.
Semana 1 Derecho a interponer recursos y reparación.
 
LABERINTOS DE DISCIPLINAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
LABERINTOS DE DISCIPLINAS OLÍMPICAS.  Por JAVIER SOLIS NOYOLALABERINTOS DE DISCIPLINAS OLÍMPICAS.  Por JAVIER SOLIS NOYOLA
LABERINTOS DE DISCIPLINAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
 
EJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANA
EJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANAEJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANA
EJEMPLOS DE FLORA Y FAUNA DE LA COSTA PERUANA
 
Reglamento del salón - Intensa-mente.pdf
Reglamento del salón - Intensa-mente.pdfReglamento del salón - Intensa-mente.pdf
Reglamento del salón - Intensa-mente.pdf
 
PPT: Un día en el ministerio de Jesús.pptx
PPT: Un día en el ministerio de Jesús.pptxPPT: Un día en el ministerio de Jesús.pptx
PPT: Un día en el ministerio de Jesús.pptx
 
Flipped Classroom con TIC (1 de julio de 2024)
Flipped Classroom con TIC (1 de julio de 2024)Flipped Classroom con TIC (1 de julio de 2024)
Flipped Classroom con TIC (1 de julio de 2024)
 
Plataformas de vídeo online (2 de julio de 2024)
Plataformas de vídeo online (2 de julio de 2024)Plataformas de vídeo online (2 de julio de 2024)
Plataformas de vídeo online (2 de julio de 2024)
 
Curación de contenidos (1 de julio de 2024)
Curación de contenidos (1 de julio de 2024)Curación de contenidos (1 de julio de 2024)
Curación de contenidos (1 de julio de 2024)
 
Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024
 
03. SESION PERSONAL-PRIMEROS POBLADORES DEL PERÚ.docx
03. SESION PERSONAL-PRIMEROS POBLADORES  DEL PERÚ.docx03. SESION PERSONAL-PRIMEROS POBLADORES  DEL PERÚ.docx
03. SESION PERSONAL-PRIMEROS POBLADORES DEL PERÚ.docx
 
Taller intensivo de formación continua. Puebla.
Taller intensivo de formación continua. Puebla.Taller intensivo de formación continua. Puebla.
Taller intensivo de formación continua. Puebla.
 
ACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLA
ACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLAACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLA
ACERTIJO MATEMÁTICO DEL MEDALLERO OLÍMPICO. Por JAVIER SOLIS NOYOLA
 
Crear infografías: Iniciación a Canva (1 de julio de 2024)
Crear infografías: Iniciación a Canva (1 de julio de 2024)Crear infografías: Iniciación a Canva (1 de julio de 2024)
Crear infografías: Iniciación a Canva (1 de julio de 2024)
 
Introducción a las herramientas de Google Apps (3 de julio de 2024)
Introducción a las herramientas de Google Apps (3 de julio de 2024)Introducción a las herramientas de Google Apps (3 de julio de 2024)
Introducción a las herramientas de Google Apps (3 de julio de 2024)
 
diapositivas paco yunque.pptx cartelera literaria
diapositivas paco yunque.pptx cartelera literariadiapositivas paco yunque.pptx cartelera literaria
diapositivas paco yunque.pptx cartelera literaria
 
Toxina Botulínica (Botox)
Toxina Botulínica (Botox)Toxina Botulínica (Botox)
Toxina Botulínica (Botox)
 

3. algoritmos de ordenamiento interno

  • 2. 6. ORDENACIÓN INTERNA Algoritmos de ordenamiento por intercambio  Burbuja  Quicksort  Shellsort Algoritmos de ordenamiento por distribución  Radix
  • 3. INSERCIÓN DIRECTA • Este método consiste en buscar el lugar adecuado para cada registro recorriendo los registros anteriores para dejar un lugar vacío para el nuevo elemento. El proceso de acomodo de cada elemento se repite hasta llegar al último elemento, los elementos previos al elemento a acomodar se encuentran en orden. • Este es el método usado por los jugadores de cartas para acomodar su juego.
  • 4. ORDENAMIENTO POR INSERCIÓN DIRECTA Variables – K arreglo de datos a ordenar – V variable auxiliar – i, j índices para el arreglo – N número de elementos InserciónDirecta Inicio Para i=2 hasta N incremento 1 v = K(i) //elemento a acomodar j = i Mientras (j > 1) y (K(j-1) > v) K(j) = K(j-1) //mueve elementos j = j-1 K(j) = v // inserta el elemento actual Fin 3 8 2 1 4 1 2 3 4 5 6 2K 3 8 2 3 8 1 2 3 8 1 2 3 4 8 1 2 2 3 4 8
  • 5. BURBUJA (BUBBLE) • Este método realiza comparaciones de todas las posibles parejas de llaves intercambiando aquellas que se encuentran fuera de orden. • Utiliza un proceso repetitivo comparando las parejas de datos adyacentes del inicio al final del arreglo donde, después de la primer pasada la llave mayor queda en la última posición del arreglo.
  • 6. BURBUJA (BUBBLE) Variables • n es el total de elementos • K arreglo de llaves • t variable auxiliar para el intercambio • i,j variables para los indices Burbuja Inicio para i= n-1 ; i>0 ; i-- para j=0; i>j; j++ si (k[j] > k[j+1]) t = k[j]; k[j]= k[j+1]; k[j+1] = t; Fin 3 8 2 1 4 0 1 2 3 4 5 2 3 8 2 1 4 2 3 2 8 1 4 2 3 2 1 8 4 2 3 2 1 4 8 2 3 2 1 4 2 8 Primera pasada
  • 7. 3 2 1 4 2 8 2 3 1 4 2 8 2 1 3 4 2 8 2 1 3 4 2 8 2 1 3 2 4 8 Segunda pasada 2 1 3 2 4 8 1 2 3 2 4 8 1 2 3 2 4 8 1 2 2 3 4 8 Tercer pasada 1 2 2 3 4 8 1 2 2 3 4 8 1 2 2 3 4 8 Cuarta pasada 1 2 2 3 4 8 1 2 2 3 4 8 Quinta pasada
  • 8. SHELL SORT • El método shell divide el arreglo a ordenar en varios grupos haciendo comparaciones e intercambios entre ellos. El tamaño de los subgrupos se decrementa y el número de subgrupos se incrementa hasta llegar a tener n grupos de tamaño 1. A partir de este punto, el método funciona como el de inserción directa. • El tamaño de los subgrupos así como el total de estos puede determinarlos el usuario para hacer mas eficiente el algoritmo.
  • 9. SHELL SORTVariables – K arreglo de datos a ordenar – H tamaño del grupo – i, j índices para el arreglo – V variable auxiliar – N número de elementos – grupo arreglo con los tamaños de grupo Shellsort Inicio grupo = [ 21, 7, 3, 1] para g=0; g<4; g++ h=grupo[g]; para i=h; i<n; i++ v=k[i]; j=i; mientras (j>=h && a[j-h]>v) k[j]=k[j-h]; j=j-h; k[j]=v; Fin 3 7 9 0 5 1 6 8 4 2 0 6 1 5 7 3 4 9 8 2 3 7 9 0 5 1 6 8 4 2 0 6 1 5 7 3 4 9 8 2 3 3 2 0 5 1 5 7 4 4 0 6 1 6 8 7 9 9 8 2 3 3 2 5 7 4 1 6 80 5 1 4 0 6 7 9 9 8 2 0 0 1 3 3 4 5 6 81 2 2 4 5 6 7 7 9 8 9 0 0 1 1 2 2 3 3 4 4 5 6 5 6 8 7 7 9 8 9 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9
  • 10. RADIX • Radix Sort (ordenamiento Radix) es un algoritmo de ordenamiento estable* para ordenar elementos identificados por llaves (o claves) únicas. Cada llave debe ser una cadena o un número capaz de ser ordenada alfanuméricamente. • Este método ejecuta un número de repeticiones igual al número de caracteres de las llaves a ordenar. El Radix Directo, inicia con el dígito más a la derecha repartiendo los datos en “canastas”, estos datos se reparten de nuevo de acuerdo al siguiente dígito y así sucesivamente hasta terminar con el dígito de mas a la izquierda.
  • 11. 329 248 123 423 226 825 132 335 231 432 256 218 Distribución y reacomodo Digito derecho 329248123 423 226825132 335 231 432 256 218 231 132 432 123 423 825 335 226 256 248 218 329 231 132 432 123 423 825 335226 256248218 329 218 123 423 825 226 329 231 132 432 335 248 256 Distribución y reacomodo Digito central
  • 12. 231 132 432 123 423 825 335226 256 248 218 329 218 123 423 825 226 329 231 132 432 335 248 256 Distribución y reacomodo Digito izquierdo 123 132 218 226 231 248 256 329 335 423 432 825
  • 15. DESCRIPCIÓN • Se elige un pivote. • Se reubican los elementos respecto al pivote los menores antes, los mayores atrás. • El arreglo queda separado en dos subarreglos • Se repite el proceso con los subarreglos resultantes • El arreglo esta ordenado
  • 16. DEMOSTRACIÓN • Suponiendo que el número total de elementos a ordenar es potencia de dos, es decir, n = 2k. De aquí podemos ver que k = log2(n), donde k es el número de divisiones que realizará el algoritmo. • En la primera fase del algoritmo habrán n comparaciones, en la segunda fase el algoritmo creará dos sublistas aproximadamente de tamaño n/2. El número total de comparaciones de estas dos sublistas es: 2(n/2) = n. En la tercera fase el algoritmo procesará 4 sublistas más, por tanto el número total de comparaciones en esta fase es 4(n/4) = n. • En conclusión, el número total de comparaciones que hace el algoritmo es:
  • 17. TÉCNICAS DE ELECCIÓN DE PIVOTE • El algoritmo básico del método Quicksort consiste en tomar cualquier elemento de la lista al cual denominaremos como pivote, dependiendo de la partición en que se elija, el algoritmo será más o menos eficiente. • Tomar un elemento cualquiera como pivote tiene la ventaja de no requerir ningún cálculo adicional, lo cual lo hace bastante rápido. Sin embargo, esta elección «a ciegas» siempre provoca que el algoritmo tenga un orden de O(n²) para ciertas permutaciones de los elementos en la lista. • Otra opción puede ser recorrer la lista para saber de antemano qué elemento ocupará la posición central de la lista, para elegirlo como pivote.
  • 18. ORDENAMIENTO POR CONTEO • Este método utiliza un arreglo auxiliar para contabilizar el numero de llaves que son mayores que la llave actual. • El arreglo de contadores, especifica la posición final donde debería estar cada elemento.
  • 19. ORDENAMIENTO POR CONTEO Variables – K arreglo de datos a ordenar – Cont arreglo de contadores – N número de elementos a ordenar ComparacionPorConteo Inicio inicializar el arreglo de contadores con cero en todas sus posiciones Para i=N hasta 2 decremento 1 Para j=i-1 hasta 1 decremento 1 si K(i) < K(j) Cont(j)++ sino Cont(i)++ Fin
  • 20. EJEMPLO 23 11 19 8 7 1 2 3 4 5 0 0 0 0 0 1 2 3 4 5 K Cont 1 1 1 1 0 2 2 2 1 0 3 2 3 1 0 4 2 3 1 0 Inicial Primera pasada Segunda pasada Tercera pasada Cuarta pasada
  • 21. ORDENAMIENTO POR DISTRIBUCIÓN • Este método es bueno aplicarlo cuando existen muchas claves repetidas y estas se encuentran en un rango pequeño entre u y v. Rango u<=K1..n<=v • Utiliza un arreglo contador con posiciones desde u hasta v, además de un arreglo para generar la salida.
  • 22. ORDENAMIENTO POR DISTRIBUCIÓNVariables – K arreglo de datos a ordenar – Cont arreglo de contadores con índices desde u hasta v – S arreglo de salida – N número de elementos a ordenar – U llave menor – V llave mayor Distribución Inicio inicializar el arreglo de contadores con cero en todas sus posiciones Para i=1 hasta N incremento 1 Cont(K(i))++ // cuenta las llaves iguales Para j=u+1 hasta v incremento 1 Cont(j) = Cont(j) + Cont(j-1) // localiza la posición de cada llave Para j=N hasta 1 decremento 1 i = Cont(K(j)) S(i) = K(j) // envía la llave al vector de salida Cont(K(j)) = Cont(K(j)) - 1 Fin
  • 23. EJEMPLO 29 31 29 34 29 1 2 3 4 5 Arreglo a ordenar K Arreglo de contadores Cont Arreglo de salida S 29 34 Inicial Cuenta llaves repetidas Posición de cada llave Acomodo en la salida 0 0 0 0 0 29 30 31 32 33 34 3 0 1 0 0 3 3 4 4 4 0 1 5 2 3 4 4 4 4 1 2 3 4 5
  • 24. EJERCICIOS PARA REALIZAR • Ingresar 10 números aleatorios y ordenarlos por los siguientes métodos – Quicksort – Shell – Insercion