SlideShare una empresa de Scribd logo
Ordenamiento de
arreglos
Estructuras de Datos
Algoritmos de ordenamiento
 Dado un arreglo de enteros A y su
longitud TAM, ordenar el arreglo de
menor a mayor
Métodos de ordenamiento:
 Selección
 Inserción
 Burbuja
 Quicksort
Método de Selección
Este algoritmo es sencillo. Consiste en lo
siguiente:
 Buscas el elemento más pequeño de la lista.
 Lo intercambias con el elemento ubicado en
la primera posición de la lista.
 Buscas el segundo elemento más pequeño de
la lista.
 Lo intercambias con el elemento que ocupa
la segunda posición en la lista.
 Repites este proceso hasta que hayas
ordenado toda la lista.
Ejemplo de selección
Lista a ordenar: 4 - 3 - 5 - 2 - 1
intercambiamos con el 4 y la lista queda así:
1 - 3 - 5 - 2 - 4
Lo intercambiamos con el elemento en la segunda
posición, es decir el 3. La lista queda así:
1 - 2 - 5 - 3 - 4
intercambiamos con el 5:
1 - 2 - 3 - 5 - 4
intercambiamos con el 5:
1 - 2 - 3 - 4 - 5
Algoritmo (método de
selección)
for (i=0; i<TAM - 1; i++)
pos_menor = Menor (A, TAM, i);
temp = A[i];
A[i] = A [pos_menor];
A [pos_menor] = temp;
Método de inserción
Consideremos que en un momento
dado, el segmento izquierdo del
arreglo está ordenado y el segmento
derecho no.
Podemos tomar un elemento del
segmento derecho e insertarlo en su
lugar correcto en el lado izquierdo
Parte ordenada Parte desordenada
 Se considera la lista partida en dos sublistas,
una ordenada y la otra para ordenar
 En el primer paso, la lista ordenada contiene
un elemento y la lista por ordenar, TAM-1,
 Se van extrayendo uno a uno los elementos
de la lista desordenada y se colocan en la
sublista ordenada, mediante
comparaciones sucesivas, hasta encontrar
la posición correcta,
 El proceso continúa hasta que la lista
desordenada queda vacía.
Ejemplo de inserción
8 12 4 9 3
8 12 4 9 3
4 8 12 9 3
4 8 9 12 3
3 4 8 9 12
Método de la burbuja
 Supongamos que tenemos una función
flota() que “flota” el elemento más grande
hasta el final del arreglo.
 Ejemplo: int a[] = {8, 12, 4, 9, 3 };
flota(a);
a 8 4 9 3 12
Método de la burbuja
 ¿Cómo podemos ordenar todo el arreglo
usando la función flota?
8 12 4 9 3
8 4 9 3 12
8 4 3 9 12
4 3 8 9 12
3 4 8 9 12
Método de la burbuja
for(i=N-1; i>0; i--)
flota(a);
 Podemos ahorrar ciclos si limitamos el límite
de flotación
for(i=N-1; i>0; i--)
flota(a, i);
El método flota
/* dado un arreglo y un índice i, colocar en
la posición i el elemento más grande
que exista entre a[0] y a[i]
flota: arreglo, indice->void
*/
void flota(int a[], int i)
{
...
}
Flotación
8 12 4 9 3
8 12 4 9 3
8 4 12 9 3
8 4 9 12 3
8 4 9 3 12
Flotación
Public void flota(int a[], int i)
{int j;
for(j=0; j < i; j++)
if(a[j]>a[j+1])
intercambia(a[j], a[j+1]);
}
Intercambio
Public void intercambia(int x, int y)
{int t;
t = x;
x = y;
y = t;
}
Método de la burbuja
void burbuja(int a[], int N)
{ int i;
for(i=N-1; i>0; i--)
flota(a, i);
}
void flota(int a[], int i)
Public void burbuja(int a[], int N)
{ int i, j;
for(i=N-1; i>0; i--)
for(j=0; j < i; j++)
if(a[j]>a[j+1])
intercambia(a[j], a[j+1]);
}
Quick Sort
 Inventado por C. A. R. Hoare
 Se escoje un elemento del arreglo como
pivote
 Se particiona el arreglo en dos subarreglos:
uno contiene aquellos elementos menores
que el pivote, el otro contiene los mayores
 Se ordenan los subarreglos.
 Se obtiene el arreglo ordenado uniendo de
nuevo los subconjuntos ordenados y el
pivote.
Comparación de algoritmos
 Número
de
elementos
Selección
con listas
Selección
con
arreglos
Burbuja
con
arreglos
Quicksort
con colas
Quicksort
con
arreglos
100 103 miliseg. 4 miliseg.  6 miliseg.  29 miliseg.  2 miliseg. 
500  3638 
miliseg. 
86 miliseg.  165 miliseg.  217 
miliseg. 
9 miliseg. 
1000  20 seg.  0.3 seg.  0.7 seg.  0.6 seg.  18 miliseg. 
2000  121 seg.  1.4 seg.  2.6 seg.  1.5 seg.  43 miliseg.
100000 más de 3 
días
1 hora 2 horas 15 min. 3.4 seg.

Más contenido relacionado

La actualidad más candente

Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
Blanca Parra
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
Huascar Génere
 
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
 

La actualidad más candente (20)

Listas
ListasListas
Listas
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
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
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Metodo burbuja
Metodo burbujaMetodo burbuja
Metodo burbuja
 
Algoritmo Heap Sort
Algoritmo Heap SortAlgoritmo Heap Sort
Algoritmo Heap Sort
 
Algoritmo de quicksort
Algoritmo de quicksortAlgoritmo de quicksort
Algoritmo de quicksort
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : Cola
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
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)
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
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
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Quicksort
QuicksortQuicksort
Quicksort
 
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
 
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
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 

Destacado

Método de ordenamiento shell (1)
Método de ordenamiento shell (1)Método de ordenamiento shell (1)
Método de ordenamiento shell (1)
kikecarvajalino
 
Algoritmo metodo quicksort
Algoritmo metodo quicksortAlgoritmo metodo quicksort
Algoritmo metodo quicksort
Patricia Correa
 
Exposicion Estructuras
Exposicion EstructurasExposicion Estructuras
Exposicion Estructuras
Angie Suarez
 
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
 
Ordenamiento x insercion espo
Ordenamiento x insercion espoOrdenamiento x insercion espo
Ordenamiento x insercion espo
Ana Maria
 
Las matematicas en la vida diaria
Las matematicas en la vida diariaLas matematicas en la vida diaria
Las matematicas en la vida diaria
Gema Fuentes
 
HISTORIA DE LAS MATEMÁTICAS
HISTORIA DE LAS MATEMÁTICASHISTORIA DE LAS MATEMÁTICAS
HISTORIA DE LAS MATEMÁTICAS
eaimoa
 

Destacado (20)

Método de ordenamiento shell
Método de ordenamiento shellMétodo de ordenamiento shell
Método de ordenamiento shell
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Método de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellMétodo de Ordenamiento Sort Shell
Método de Ordenamiento Sort Shell
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
Diapositivas unidad 5 -metodos de ordenamiento-
Diapositivas unidad 5 -metodos de ordenamiento-Diapositivas unidad 5 -metodos de ordenamiento-
Diapositivas unidad 5 -metodos de ordenamiento-
 
Método de ordenamiento shell (1)
Método de ordenamiento shell (1)Método de ordenamiento shell (1)
Método de ordenamiento shell (1)
 
Informe metodos de ordenamiento
Informe metodos de ordenamientoInforme metodos de ordenamiento
Informe metodos de ordenamiento
 
Algoritmo metodo quicksort
Algoritmo metodo quicksortAlgoritmo metodo quicksort
Algoritmo metodo quicksort
 
Ordenacion Burbuja
Ordenacion BurbujaOrdenacion Burbuja
Ordenacion Burbuja
 
Exposicion Estructuras
Exposicion EstructurasExposicion Estructuras
Exposicion Estructuras
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 
Metodo burbuja
Metodo burbujaMetodo burbuja
Metodo burbuja
 
Algortimos De Ordenamiento
Algortimos De OrdenamientoAlgortimos De Ordenamiento
Algortimos De Ordenamiento
 
Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo
 
Ordenamiento x insercion espo
Ordenamiento x insercion espoOrdenamiento x insercion espo
Ordenamiento x insercion espo
 
Las matematicas en la vida diaria
Las matematicas en la vida diariaLas matematicas en la vida diaria
Las matematicas en la vida diaria
 
Ordenamiento de la información
Ordenamiento de la informaciónOrdenamiento de la información
Ordenamiento de la información
 
HISTORIA DE LAS MATEMÁTICAS
HISTORIA DE LAS MATEMÁTICASHISTORIA DE LAS MATEMÁTICAS
HISTORIA DE LAS MATEMÁTICAS
 
ORDEN DE INFORMACIÓN
ORDEN DE INFORMACIÓNORDEN DE INFORMACIÓN
ORDEN DE INFORMACIÓN
 

Similar a Ordenamiento ppt

Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
lichic
 
Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacion
lichic
 
Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)
Linio Colquehuanca Rodrigo
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
Daniel Guaycha
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Orlando Torres
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Monica Canaza
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
danyyel123
 

Similar a Ordenamiento ppt (20)

Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacion
 
Informe insercion
Informe insercionInforme insercion
Informe insercion
 
Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)Tiempo de ejecucion de particiones (quicksort)
Tiempo de ejecucion de particiones (quicksort)
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Arreglos en c++2020
Arreglos en c++2020Arreglos en c++2020
Arreglos en c++2020
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Presentacion
PresentacionPresentacion
Presentacion
 
Ed002
Ed002Ed002
Ed002
 
Complejidad Algoritmica
Complejidad AlgoritmicaComplejidad Algoritmica
Complejidad Algoritmica
 
estructura de estructura de datos
estructura de estructura de datosestructura de estructura de datos
estructura de estructura de datos
 
Scala collections
Scala collectionsScala collections
Scala collections
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
 

Más de Omar Zuñiga

Más de Omar Zuñiga (6)

First steps tv7_unattended_access_es
First steps tv7_unattended_access_esFirst steps tv7_unattended_access_es
First steps tv7_unattended_access_es
 
Normas cableado
Normas cableadoNormas cableado
Normas cableado
 
Cableado estructurado
Cableado estructuradoCableado estructurado
Cableado estructurado
 
Cableado horizontal y vertical
Cableado horizontal y verticalCableado horizontal y vertical
Cableado horizontal y vertical
 
Desfragmentación de discos
Desfragmentación de discosDesfragmentación de discos
Desfragmentación de discos
 
Red hat
Red hatRed hat
Red hat
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 

Último (20)

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 

Ordenamiento ppt

  • 2. Algoritmos de ordenamiento  Dado un arreglo de enteros A y su longitud TAM, ordenar el arreglo de menor a mayor Métodos de ordenamiento:  Selección  Inserción  Burbuja  Quicksort
  • 3. Método de Selección Este algoritmo es sencillo. Consiste en lo siguiente:  Buscas el elemento más pequeño de la lista.  Lo intercambias con el elemento ubicado en la primera posición de la lista.  Buscas el segundo elemento más pequeño de la lista.  Lo intercambias con el elemento que ocupa la segunda posición en la lista.  Repites este proceso hasta que hayas ordenado toda la lista.
  • 4. Ejemplo de selección Lista a ordenar: 4 - 3 - 5 - 2 - 1 intercambiamos con el 4 y la lista queda así: 1 - 3 - 5 - 2 - 4 Lo intercambiamos con el elemento en la segunda posición, es decir el 3. La lista queda así: 1 - 2 - 5 - 3 - 4 intercambiamos con el 5: 1 - 2 - 3 - 5 - 4 intercambiamos con el 5: 1 - 2 - 3 - 4 - 5
  • 5. Algoritmo (método de selección) for (i=0; i<TAM - 1; i++) pos_menor = Menor (A, TAM, i); temp = A[i]; A[i] = A [pos_menor]; A [pos_menor] = temp;
  • 6. Método de inserción Consideremos que en un momento dado, el segmento izquierdo del arreglo está ordenado y el segmento derecho no. Podemos tomar un elemento del segmento derecho e insertarlo en su lugar correcto en el lado izquierdo Parte ordenada Parte desordenada
  • 7.  Se considera la lista partida en dos sublistas, una ordenada y la otra para ordenar  En el primer paso, la lista ordenada contiene un elemento y la lista por ordenar, TAM-1,  Se van extrayendo uno a uno los elementos de la lista desordenada y se colocan en la sublista ordenada, mediante comparaciones sucesivas, hasta encontrar la posición correcta,  El proceso continúa hasta que la lista desordenada queda vacía.
  • 8. Ejemplo de inserción 8 12 4 9 3 8 12 4 9 3 4 8 12 9 3 4 8 9 12 3 3 4 8 9 12
  • 9. Método de la burbuja  Supongamos que tenemos una función flota() que “flota” el elemento más grande hasta el final del arreglo.  Ejemplo: int a[] = {8, 12, 4, 9, 3 }; flota(a); a 8 4 9 3 12
  • 10. Método de la burbuja  ¿Cómo podemos ordenar todo el arreglo usando la función flota? 8 12 4 9 3 8 4 9 3 12 8 4 3 9 12 4 3 8 9 12 3 4 8 9 12
  • 11. Método de la burbuja for(i=N-1; i>0; i--) flota(a);  Podemos ahorrar ciclos si limitamos el límite de flotación for(i=N-1; i>0; i--) flota(a, i);
  • 12. El método flota /* dado un arreglo y un índice i, colocar en la posición i el elemento más grande que exista entre a[0] y a[i] flota: arreglo, indice->void */ void flota(int a[], int i) { ... }
  • 13. Flotación 8 12 4 9 3 8 12 4 9 3 8 4 12 9 3 8 4 9 12 3 8 4 9 3 12
  • 14. Flotación Public void flota(int a[], int i) {int j; for(j=0; j < i; j++) if(a[j]>a[j+1]) intercambia(a[j], a[j+1]); }
  • 15. Intercambio Public void intercambia(int x, int y) {int t; t = x; x = y; y = t; }
  • 16. Método de la burbuja void burbuja(int a[], int N) { int i; for(i=N-1; i>0; i--) flota(a, i); } void flota(int a[], int i) Public void burbuja(int a[], int N) { int i, j; for(i=N-1; i>0; i--) for(j=0; j < i; j++) if(a[j]>a[j+1]) intercambia(a[j], a[j+1]); }
  • 17. Quick Sort  Inventado por C. A. R. Hoare  Se escoje un elemento del arreglo como pivote  Se particiona el arreglo en dos subarreglos: uno contiene aquellos elementos menores que el pivote, el otro contiene los mayores  Se ordenan los subarreglos.  Se obtiene el arreglo ordenado uniendo de nuevo los subconjuntos ordenados y el pivote.
  • 18. Comparación de algoritmos  Número de elementos Selección con listas Selección con arreglos Burbuja con arreglos Quicksort con colas Quicksort con arreglos 100 103 miliseg. 4 miliseg.  6 miliseg.  29 miliseg.  2 miliseg.  500  3638  miliseg.  86 miliseg.  165 miliseg.  217  miliseg.  9 miliseg.  1000  20 seg.  0.3 seg.  0.7 seg.  0.6 seg.  18 miliseg.  2000  121 seg.  1.4 seg.  2.6 seg.  1.5 seg.  43 miliseg. 100000 más de 3  días 1 hora 2 horas 15 min. 3.4 seg.