SlideShare a Scribd company logo
1 of 31
Estructura de datos y algoritmos
Unidad 05 – Recursividad y
Ordenamiento


Profesores
 •Alfredo Granda
 •Juan Ramírez
Unidad 05 - Ordenamiento Simple
Objetivos

•   Definición
•   Ordenamiento por intercambio
•   Burbuja
•   Burbuja Modificada
•   Ordenamiento por selección
•   Ordenamiento por inserción
Definición
Ordenamiento
• El ordenamiento de los datos consiste en disponer
  un conjunto de datos (o una estructura) en algún
  determinado orden con respecto a alguno de sus
  campos.
 ▫ Clave: Campo por el cual se ordena.

• Según donde estén almacenados los datos a
  ordenar, podemos decir que el ordenamiento es:
 ▫ Interna: Arrays, listas o árbol. Típicamente en RAM.
 ▫ Externa: En Archivos en discos.
Orden
• Una lista de datos está ordenada por la clave k si la lista
  está en orden con respecto a la clave anterior.

• Este Orden puede ser:
  ▫ Ascendente: (i<j) entonces (k[i]<=k[j])
  ▫ Descendente: (i>j) entonces (k[i]>=k[j])

• Hay Numerosos Métodos de Ordenamiento que difieren
  en eficiencia.
  ▫ Análisis de algoritmo orientado a las comparaciones
    realizadas por cada uno.
  ▫ Las comparaciones serán función de “n”. Siendo “n” el
    tamaño del vector a Ordenar.
Clasificación de Métodos de Ordenamiento
• Analizaremos los siguientes métodos:
  ▫ Básicos: Son eficaces en Listas pequeñas
     Burbuja e Intercambio: simple pero Ineficiente.
     Selección e inserción: Recomendados.

  ▫ Avanzados: Son eficaces en Listas grandes.
       Merge Sort: muy extendido
       Quick Sort: muy extendido
       Shell Sort: muy extendido
       Counting Sort: el mas rápido para números
Ordenamiento por intercambio
Ordenamiento por Intercambio
(Conocido como Burbuja)
• El más sencillo de todos. Se basa en:
  ▫ La lectura sucesiva de la lista a ordenar,
  ▫ Comparando el elemento inferior de la lista con todos
    los restantes
  ▫ Efectuando el Intercambio de posiciones cuando el
    orden resultante no sea correcto.

• Siendo n la cantidad de elementos, Realizará al
  menos n–1 pasadas.
Ejemplo - Ordenamiento por Intercambio
Pasada 1: Se compara a[1] con todos, así primero se cambia a[1] con a[2] pues a[1] >
a[2] y debe ser Ascendente, es decir a[1]<a[2] …y por utimo a[1] con a[4]

a[1] a[2] a[3] a[4]                 a[1]    a[2]   a[3]     a[4]         a[1]     a[2]    a[3]   a[4]
  8     4      6       2              4        8    6        2               2        8    6      4


Pasada 2: El elemento mas pequeño esta en a[1] y se analiza la sublista restante.
Al cabo de la pasada, el segundo mas chico esta en a[2]….

Pasada 3:
               a[1]    a[2]    a[3]       a[4]       a[1]        a[2]   a[3]     a[4]
                   2       4    8          6            2          4     6        8


Pasada i: Al cabo de la pasada i, el elemento de orden i, está en a[i]
Algoritmo: Ordenamiento por Intercambio
Algoritmo ordIntercambio (a[], n)
  i, k, aux: enteros /* se realizan n-1 pasadas */

 para i desde 1 hasta n-1 hacer
  para k desde i+1 hasta n hacer
    si a[i] > a[k] entonces
       aux  a[i]               Complejidad (n)(n–1)
       a[i]  a[k];             Del Orden F(n)=n2.

       a[k]  aux ;                          Mejor Caso = O(n )  2

                                                  Peor Caso = O(n2)
Código en C++
Ordenamiento por Intercambio
void ordIntercambio (int a[], int n)
{
  for (int i=0; i < n-1; i++)
  {
      for (int k=i+1; k<n; k++)
      {
            if (a[i] > a[k])
            {
                  int aux = a[i];
                  a[i] = a[k];
                  a[k] = aux;
            }
      }
  }
}
Burbuja
Burbuja (Verdadera Burbuja)
• Los elementos burbujean:
  ▫ Los mas grandes, caen al fondo del arreglo (posición n)
  ▫ Los mas chicos suben a la cima (posición 1).

• Estudia parejas de elementos Adyacentes
  ▫ a[1] y a[2], a[2] y a[3]…a[i] y a[i+1]… a[n–1] y a[n].
  ▫ Si a[i+1] < a[i] Entonces Los INTERCAMBIA

• Algoritmo:
  ▫ Pasada 1: considera desde (a[1], a[2]) hasta (a[n–1], a[n]).
      En a[n] esta el elemento mas grande.
  ▫ Pasada 2: considera desde (a[1], a[2]) hasta (a[n–2], a[n–1]).
      En a[n–1] esta el segundo elemento mas grande.
  ▫ Pasada i: considera desde (a[1], a[2]) hasta (a[n–i], a[n-i+1]).
      En a[n–i+1] esta el elemento de orden i.
  ▫ El proceso termina con la pasada n–1
      El elemento mas pequeño esta en a[1].
Burbuja
       Pasada 1:                  Pasada 2:                  Pasada 3:
a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]
50   20    40   80   30    20   40    50   30   80    20   40    30   50   80

a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]
20   50    40   80   30    20   40    50   30   80    20   40    30   50   80

a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]
20   40    50   80   30    20   40    50   30   80    20   30    40   50   80

a[1] a[2] a[3] a[4] a[5]   a[1] a[2] a[3] a[4] a[5]
20   40    50   80   30    20   40    30   50   80

a[1] a[2] a[3] a[4] a[5]
20   40    50   30   80
Algoritmo: Ordenamiento por Burbuja
Algoritmo ordBurbuja (a[], n)
  i, k, aux: enteros

 Repetir con i desde 1 hasta n-1
   Repetir con k desde 1 hasta n-i
      si (a[k] > a[k+1]) entonces
          aux = a[k]
          a[k] = a[k+1]
          a[k+1] = aux
                                     Mejor Caso = O(n2)
                                     Caso Prom. = O(n2)
                                     Peor Caso = O(n2)
Algoritmo: Ordenamiento por Burbuja
(Modificado)
Algoritmo ordBurbujaModificado (a[], n)
  i, k, aux: enteros
  ordenado: boolean
 Repetir con i desde 1 hasta n-1
    ordenado = true
    Repetir con k desde 1 hasta n-i
            si (a[k] > a[k+1]) entonces
                    aux = a[k]
                    a[k] = a[k+1]
                    a[k+1] = aux
                    ordenado = false
    si (ordenado) break                   Mejor Caso = O(n)
                                          Caso Prom. = O(n2)
                                          Peor Caso = O(n2)
Código en C++:
Ordenamiento por Burbuja (Modificado)
void ordBurbujaModificado (int a[], int n)
{
  bool ordenado;
  for (int i=0; i < n-1; i++)
  {
       ordenado = true;
       for (int j=0; j < n - (i + 1); j++)
       {
               if (a[j] > a[j+1])
               {
                        int aux = a[j];
                        a[j] = a[j+1];
                        a[j+1] = aux;
                        ordenado = false;
               }
       }
       if (ordenado) break;
  }
}
Ordenamiento por selección
Selection Sort
Ordenamiento Por Selección
• Realiza sucesivas pasadas que
  ▫ Buscan el elemento más pequeño de la lista a y lo
    escribe al frente de la lista a[1].
  ▫ Considera las posiciones restantes, a[2]…a[n]
  ▫ Finaliza cuando ya no hay Posiciones Restantes.

• En la pasada i
  ▫ Está Ordenado: desde a[1] hasta a[i–1].
  ▫ Está Desordenado: Desde a[i] hasta a[n].

• El proceso continua n–1 vueltas.
Ejemplo: Ordenamiento por Selección
                                                        a[1]   a[2]   a[3]   a[4]
Lista Original:
                                                        51     21     39     80

Pasada 1: Lista entre 1 y 4. Selecciona el menor (21)   a[1]   a[2]   a[3]   a[4]
y lo pasa al a[1]
                                                        21     51     39     80


Pasada 2: Lista entre 2 y 4. Selecciona el menor (39)   a[1]   a[2]   a[3]   a[4]
y lo pasa al a[2]                                       21     39     51     80


                                                        a[1]   a[2]   a[3]   a[4]
Pasada 3: Lista entre 3 y 4. No selecciona nada.
                                                        21     39     51     80
Algoritmo: Ordenamiento por Selección
Algortimo ordSeleccion (a[], n)
  menor, k, j: enteros;
  Repetir con i desde 1 hasta n-1
      k=i      /* comienzo de la exploración en índice i */
      menor = a[i]
      Repetir con j desde i+1 hasta n
              si a[j] < menor entonces
                      menor = a[j]
                      k=j           Complejidad (n (n–1))/2
              a[k] = a[i]           Del Orden F(n)=n2.

              a[i] = menor                          Mejor Caso = O(n )  2

                                                        Caso Prom. = O(n2)
                                                        Peor Caso = O(n2)
Código en C++:
Ordenamiento por Selección
void ordSeleccion (int a[], int n)
{
  int k, menor;
  for (int i=0; i < n-1; i++)
  {
       k = i;
       menor = a[i];
       for (int j=i+1; j<n; j++)
       {
               if (a[j] < menor)
               {
                       menor = a[j];
                       k = j;
               }
       }
       a[k] = a[i];
       a[i] = menor;
  }
}
Ordenamiento por inserción
Ordenamiento Por Inserción
• Similar al proceso de ordenar tarjetas en un tarjetero por orden
  alfabético:
  ▫ Consiste en insertar un elemento en su posición correcta, dentro de
    una lista que ya está Ordenada.

• Algoritmo:
  ▫ El 1er elemento a[1] se lo considera ordenado.

  ▫ Se inserta a[2] en la posición correcta, delante o detrás del a[1], según
    sea mayor o menor.

  ▫ Por cada bucle i (desde i = 2 hasta n) se explora la sublista a[1]..a[i–1]
    buscando la posición correcta de inserción del elemento a[i].

  ▫ Al dejar vacía la posición a[i] se impone un desplazamiento de todo el
    vector, desde el lugar de inserción.
Ejemplo: Ordenamiento por Inserción
                                                         a[1]   a[2]   a[3]   a[4]
Lista Original:
                                                         51     21     10     15

Pasada 1: Comenzamos en a[2] desplazando a la            a[1]   a[2]   a[3]   a[4]
derecha todos los valores que sean mayores a 21 (a[1])
                                                         21     51     10     15


Pasada 2: El 10 lo mueve hasta a[1]                      a[1]   a[2]   a[3]   a[4]
                                                         10     21     51     15


                                                         a[1]   a[2]   a[3]   a[4]
Pasada 3: El 15 lo mueve hasta a[2].
                                                         10     15     21     51
Algoritmo: Ordenamiento por Inserción
Algoritmo ordInsercion (a[], n)
  i, j, aux : enteros
  Repetir con i desde 2 hasta n
        aux = a[i]
        k = i-1
        Repetir mientras (k >= 1) y (aux < a[k])
                a[k+1] = a[k]
                                       Complejidad (n (n–1))/2
                k = k-1                Del Orden F(n)=n2.
        a[k+1] = aux                           Mejor Caso = O(n)
                                                  Caso Prom. = O(n+d)
                                                  Peor Caso = O(n2)
                                                     d es la cantidad de inversiones
Código en C++:
Ordenamiento por Inserción
void ordInsercion (int a[], int n)
{
  int aux, k;
  for (int i=1; i<n; i++)
  {
      aux = a[i];
      k = i-1;
      while (k >= 0 && aux < a[k])
      {
            a[k+1] = a[k];
            k--;
      }
      a[k+1] = aux;
  }
}
Ejercicios
Ejercicio 1 - UVA - 10327
Sorting in computer science is an important part. Almost every problem can be solved effeciently if sorted
data are found. There are some excellent sorting algorithm which has already acheived the lower bound
nlgn. In this problem we will also discuss about a new sorting approach. In this approach only one
operation ( Flip ) is available and that is you can exchange two adjacent terms. If you think a while, you
will see that it is always possible to sort a set of numbers in this way.
The Problem
A set of integers will be given. Now using the above approach we want to sort the numbers in ascending
order. You have to find out the minimum number of flips required. Such as to sort "1 2 3" we need no flip
operation whether to sort "2 3 1" we need at least 2 flip operations.
The Input
The input will start with a positive integer N ( N<=1000 ). In next few lines there will be N integers. Input
will be terminated by EOF.
The Output
For each data set print "Minimum exchange operations : M" where M is the minimum flip operations
required to perform sorting. Use a seperate line for each case.



 Sample Input
 3
 1 2 3
 3
 2 3 1
 Sample Output
 Minimum exchange operations : 0
 Minimum exchange operations : 2
Ejercicio 2 - UVA - 299
At an old railway station, you may still encounter one of the last remaining ``train swappers''. A train swapper is an employee of the railroad,
whose sole job it is to rearrange the carriages of trains.
Once the carriages are arranged in the optimal order, all the train driver has to do, is drop the carriages off, one by one, at the stations for which
the load is meant.
The title ``train swapper'' stems from the first person who performed this task, at a station close to a railway bridge. Instead of opening up
vertically, the bridge rotated around a pillar in the center of the river. After rotating the bridge 90 degrees, boats could pass left or right.
The first train swapper had discovered that the bridge could be operated with at most two carriages on it. By rotating the bridge 180 degrees,
the carriages switched place, allowing him to rearrange the carriages (as a side effect, the carriages then faced the opposite direction, but train
carriages can move either way, so who cares).
Now that almost all train swappers have died out, the railway company would like to automate their operation. Part of the program to be
developed, is a routine which decides for a given train the least number of swaps of two adjacent carriages necessary to order the train. Your
assignment is to create that routine.
Input Specification
The input contains on the first line the number of test cases (N). Each test case consists of two input lines. The first line of a test case contains an
integer L, determining the length of the train ( ). The second line of a test case contains a permutation of the numbers 1 through L, indicating the
current order of the carriages. The carriages should be ordered such that carriage 1 comes first, then 2, etc. with carriage L coming last.
Output Specification
For each test case output the sentence: 'Optimal train swapping takes S swaps.' where S is an integer.



 Example Input
 3
 3
 1 3 2
 4
 4 3 2 1
 2
 2 1
 Example       Output
 Optimal       train swapping takes 1 swaps.
 Optimal       train swapping takes 6 swaps.
 Optimal       train swapping takes 1 swaps.
Ejercicio 3 - UVA - 11321
Hmm! Here you are asked to do a simple sorting. You will be given N numbers and a positive integer M. You will have to sort the N numbers in
ascending order of their modulo M value.
If there is a tie between an odd number and an even number (that is their modulo M value is the same) then the odd number will precede the
even number.
If there is a tie between two odd numbers (that is their modulo M value is the same) then the larger odd number will precede the smaller odd
number and if there is a tie between two even numbers (that is their modulo M value is the same) then the smaller even number will precede
the larger even number.
For remainder value of negative numbers follow the rule of C programming language: A negative number can never have modulus greater than
zero. E.g. -100 MOD 3 = -1, -100 MOD 4 = 0 etc.
Input
The input file contains 20 sets of inputs. Each set starts with two integers N (0<N<=10000) and M (0<M<=10000) which denotes how many
numbers are within this set. Each of the next N lines contains one number each. These numbers
should all fit in 32-bit signed integer. Input is terminated by a line containing two zeroes.
Output
For each set of input produce N+1 lines of outputs. The first line of each set contains the value of N and M. The next N lines contain N numbers,
sorted according to the rules mentioned above. Print the last two zeroes of the input file in the output file also.




 Sample Input                                                                Sample Output
 15 3                                                                        15 3
 1                                                                           15
 2                                                                           9
 3                                                                           3
 4                                                                           6
 5                                                                           12
 6                                                                           13
 7                                                                           7
 8                                                                           1
 9                                                                           4
 10                                                                          10
 11                                                                          11
 12                                                                          5
 13                                                                          2
 14                                                                          8
 15                                                                          14
 0 0                                                                         0 0

More Related Content

What's hot

El metodo burbujaXCritian_parra
El metodo burbujaXCritian_parraEl metodo burbujaXCritian_parra
El metodo burbujaXCritian_parraEdgar Rueda
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTODaniel Guaycha
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientomemorales_IUE
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Esquemas numerados
Esquemas numeradosEsquemas numerados
Esquemas numeradosLesly Taya
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.xaviercamposm
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una colajeffersoncenteno
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++cemayoral
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro Enrique Ruano
 

What's hot (20)

El metodo burbujaXCritian_parra
El metodo burbujaXCritian_parraEl metodo burbujaXCritian_parra
El metodo burbujaXCritian_parra
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Indices 1
Indices 1Indices 1
Indices 1
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 
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
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Quicksort
QuicksortQuicksort
Quicksort
 
Esquemas numerados
Esquemas numeradosEsquemas numerados
Esquemas numerados
 
Tad Colas
Tad ColasTad Colas
Tad Colas
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Insertar elementos en una cola
Insertar elementos en una colaInsertar elementos en una cola
Insertar elementos en una cola
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 

Viewers also liked

Prosperidad o burbuja: Historia reciente de los museos en China
Prosperidad o burbuja: Historia reciente de los museos en ChinaProsperidad o burbuja: Historia reciente de los museos en China
Prosperidad o burbuja: Historia reciente de los museos en China传 李
 
PLANEACIÓN Y ORDENAMIENTO TERRITORIAL EN LAS CIUDADES Y REGIONES
PLANEACIÓN Y ORDENAMIENTO  TERRITORIAL EN LAS CIUDADES Y REGIONESPLANEACIÓN Y ORDENAMIENTO  TERRITORIAL EN LAS CIUDADES Y REGIONES
PLANEACIÓN Y ORDENAMIENTO TERRITORIAL EN LAS CIUDADES Y REGIONESpotvillavicencio
 
Data Structure Insertion sort
Data Structure Insertion sort Data Structure Insertion sort
Data Structure Insertion sort Mahesh Dheravath
 
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
 
Ordenamiento x insercion espo
Ordenamiento x insercion espoOrdenamiento x insercion espo
Ordenamiento x insercion espoAna Maria
 
Algortimos De Ordenamiento
Algortimos De OrdenamientoAlgortimos De Ordenamiento
Algortimos De OrdenamientoRolf Pinto
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Instrumentos De Ordenamiento Territorial
Instrumentos De Ordenamiento TerritorialInstrumentos De Ordenamiento Territorial
Instrumentos De Ordenamiento Territorialreflexionespot
 
Insertion sort
Insertion sortInsertion sort
Insertion sortalmaqboli
 
ELABORACIÓN DE PLANES DE DESARROLLO URBANO
ELABORACIÓN DE PLANES DE DESARROLLO URBANO ELABORACIÓN DE PLANES DE DESARROLLO URBANO
ELABORACIÓN DE PLANES DE DESARROLLO URBANO Osmar Bardales Mayo
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientoLalo Chooper
 
Instrumentos de planificacion urbana
Instrumentos de planificacion urbanaInstrumentos de planificacion urbana
Instrumentos de planificacion urbanaelgranlato09
 
12. Organización de España
12. Organización de España12. Organización de España
12. Organización de Españamanjoyaes
 
Projektgruppe Medienkompetenz
Projektgruppe MedienkompetenzProjektgruppe Medienkompetenz
Projektgruppe MedienkompetenzOpen-Enquete
 
Diapositivas proyecto de mayda
Diapositivas proyecto de maydaDiapositivas proyecto de mayda
Diapositivas proyecto de maydaMaydaMaria
 

Viewers also liked (20)

Prosperidad o burbuja: Historia reciente de los museos en China
Prosperidad o burbuja: Historia reciente de los museos en ChinaProsperidad o burbuja: Historia reciente de los museos en China
Prosperidad o burbuja: Historia reciente de los museos en China
 
PLANEACIÓN Y ORDENAMIENTO TERRITORIAL EN LAS CIUDADES Y REGIONES
PLANEACIÓN Y ORDENAMIENTO  TERRITORIAL EN LAS CIUDADES Y REGIONESPLANEACIÓN Y ORDENAMIENTO  TERRITORIAL EN LAS CIUDADES Y REGIONES
PLANEACIÓN Y ORDENAMIENTO TERRITORIAL EN LAS CIUDADES Y REGIONES
 
Data Structure Insertion sort
Data Structure Insertion sort Data Structure Insertion sort
Data Structure Insertion sort
 
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)
 
Ordenamiento x insercion espo
Ordenamiento x insercion espoOrdenamiento x insercion espo
Ordenamiento x insercion espo
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Algortimos De Ordenamiento
Algortimos De OrdenamientoAlgortimos De Ordenamiento
Algortimos De Ordenamiento
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Esquema Tema 4
Esquema Tema 4Esquema Tema 4
Esquema Tema 4
 
Instrumentos De Ordenamiento Territorial
Instrumentos De Ordenamiento TerritorialInstrumentos De Ordenamiento Territorial
Instrumentos De Ordenamiento Territorial
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
ELABORACIÓN DE PLANES DE DESARROLLO URBANO
ELABORACIÓN DE PLANES DE DESARROLLO URBANO ELABORACIÓN DE PLANES DE DESARROLLO URBANO
ELABORACIÓN DE PLANES DE DESARROLLO URBANO
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Instrumentos de planificacion urbana
Instrumentos de planificacion urbanaInstrumentos de planificacion urbana
Instrumentos de planificacion urbana
 
12. Organización de España
12. Organización de España12. Organización de España
12. Organización de España
 
Ordenamiento por seleccion
Ordenamiento por seleccionOrdenamiento por seleccion
Ordenamiento por seleccion
 
Projektgruppe Medienkompetenz
Projektgruppe MedienkompetenzProjektgruppe Medienkompetenz
Projektgruppe Medienkompetenz
 
Diapositivas proyecto de mayda
Diapositivas proyecto de maydaDiapositivas proyecto de mayda
Diapositivas proyecto de mayda
 
006
006006
006
 

Similar to Ordenamiento Simple

Insercion directa
Insercion directaInsercion directa
Insercion directaabelpit2
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfjorgeulises3
 
Practica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptxPractica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptxssuserf7367f
 
Ordenamiento por mezcla
Ordenamiento por mezclaOrdenamiento por mezcla
Ordenamiento por mezclapambele
 
estructura de estructura de datos
estructura de estructura de datosestructura de estructura de datos
estructura de estructura de datosAnnette Ponzon
 
metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptxLeydiCardona3
 
Distancia de edicion
Distancia de edicionDistancia de edicion
Distancia de edicionJorge Molano
 
Ejercicios y problemas de números enteros y otros
Ejercicios y problemas de números enteros y otrosEjercicios y problemas de números enteros y otros
Ejercicios y problemas de números enteros y otrosEscuela EBIMA
 
Distancia de edición
Distancia de ediciónDistancia de edición
Distancia de edicióncarmensp
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Internasawmuk
 
ejercicios resueltos análisis de algoritmos
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmosJojo Jona
 
Una sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otroUna sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otroaronsooo
 
Una sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otroUna sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otroaronsooo
 
LinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.pptLinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.pptjlmansilla
 
Edixon matematica iii
Edixon matematica iiiEdixon matematica iii
Edixon matematica iiiEdixonlucena
 

Similar to Ordenamiento Simple (20)

Insercion directa
Insercion directaInsercion directa
Insercion directa
 
2 eso matematicas - ud01
2 eso matematicas - ud012 eso matematicas - ud01
2 eso matematicas - ud01
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
Practica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptxPractica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptx
 
Ordenamiento por mezcla
Ordenamiento por mezclaOrdenamiento por mezcla
Ordenamiento por mezcla
 
Metodos de Ordenamiento Parte 1
Metodos de Ordenamiento Parte 1Metodos de Ordenamiento Parte 1
Metodos de Ordenamiento Parte 1
 
estructura de estructura de datos
estructura de estructura de datosestructura de estructura de datos
estructura de estructura de datos
 
metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptx
 
Distancia de edicion
Distancia de edicionDistancia de edicion
Distancia de edicion
 
Ejercicios y problemas de números enteros y otros
Ejercicios y problemas de números enteros y otrosEjercicios y problemas de números enteros y otros
Ejercicios y problemas de números enteros y otros
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Distancia de edición
Distancia de ediciónDistancia de edición
Distancia de edición
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Interna
 
ejercicios resueltos análisis de algoritmos
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmos
 
Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 
Una sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otroUna sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otro
 
Una sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otroUna sucesión es un conjunto de números dispuestos uno a continuación de otro
Una sucesión es un conjunto de números dispuestos uno a continuación de otro
 
LinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.pptLinearSortOrderSatatistics.ppt
LinearSortOrderSatatistics.ppt
 
Edixon matematica iii
Edixon matematica iiiEdixon matematica iii
Edixon matematica iii
 

Recently uploaded

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 

Recently uploaded (20)

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 

Ordenamiento Simple

  • 1. Estructura de datos y algoritmos Unidad 05 – Recursividad y Ordenamiento Profesores •Alfredo Granda •Juan Ramírez
  • 2. Unidad 05 - Ordenamiento Simple Objetivos • Definición • Ordenamiento por intercambio • Burbuja • Burbuja Modificada • Ordenamiento por selección • Ordenamiento por inserción
  • 4. Ordenamiento • El ordenamiento de los datos consiste en disponer un conjunto de datos (o una estructura) en algún determinado orden con respecto a alguno de sus campos. ▫ Clave: Campo por el cual se ordena. • Según donde estén almacenados los datos a ordenar, podemos decir que el ordenamiento es: ▫ Interna: Arrays, listas o árbol. Típicamente en RAM. ▫ Externa: En Archivos en discos.
  • 5. Orden • Una lista de datos está ordenada por la clave k si la lista está en orden con respecto a la clave anterior. • Este Orden puede ser: ▫ Ascendente: (i<j) entonces (k[i]<=k[j]) ▫ Descendente: (i>j) entonces (k[i]>=k[j]) • Hay Numerosos Métodos de Ordenamiento que difieren en eficiencia. ▫ Análisis de algoritmo orientado a las comparaciones realizadas por cada uno. ▫ Las comparaciones serán función de “n”. Siendo “n” el tamaño del vector a Ordenar.
  • 6. Clasificación de Métodos de Ordenamiento • Analizaremos los siguientes métodos: ▫ Básicos: Son eficaces en Listas pequeñas  Burbuja e Intercambio: simple pero Ineficiente.  Selección e inserción: Recomendados. ▫ Avanzados: Son eficaces en Listas grandes.  Merge Sort: muy extendido  Quick Sort: muy extendido  Shell Sort: muy extendido  Counting Sort: el mas rápido para números
  • 8. Ordenamiento por Intercambio (Conocido como Burbuja) • El más sencillo de todos. Se basa en: ▫ La lectura sucesiva de la lista a ordenar, ▫ Comparando el elemento inferior de la lista con todos los restantes ▫ Efectuando el Intercambio de posiciones cuando el orden resultante no sea correcto. • Siendo n la cantidad de elementos, Realizará al menos n–1 pasadas.
  • 9. Ejemplo - Ordenamiento por Intercambio Pasada 1: Se compara a[1] con todos, así primero se cambia a[1] con a[2] pues a[1] > a[2] y debe ser Ascendente, es decir a[1]<a[2] …y por utimo a[1] con a[4] a[1] a[2] a[3] a[4] a[1] a[2] a[3] a[4] a[1] a[2] a[3] a[4] 8 4 6 2 4 8 6 2 2 8 6 4 Pasada 2: El elemento mas pequeño esta en a[1] y se analiza la sublista restante. Al cabo de la pasada, el segundo mas chico esta en a[2]…. Pasada 3: a[1] a[2] a[3] a[4] a[1] a[2] a[3] a[4] 2 4 8 6 2 4 6 8 Pasada i: Al cabo de la pasada i, el elemento de orden i, está en a[i]
  • 10. Algoritmo: Ordenamiento por Intercambio Algoritmo ordIntercambio (a[], n) i, k, aux: enteros /* se realizan n-1 pasadas */ para i desde 1 hasta n-1 hacer para k desde i+1 hasta n hacer si a[i] > a[k] entonces aux  a[i] Complejidad (n)(n–1) a[i]  a[k]; Del Orden F(n)=n2. a[k]  aux ; Mejor Caso = O(n ) 2 Peor Caso = O(n2)
  • 11. Código en C++ Ordenamiento por Intercambio void ordIntercambio (int a[], int n) { for (int i=0; i < n-1; i++) { for (int k=i+1; k<n; k++) { if (a[i] > a[k]) { int aux = a[i]; a[i] = a[k]; a[k] = aux; } } } }
  • 13. Burbuja (Verdadera Burbuja) • Los elementos burbujean: ▫ Los mas grandes, caen al fondo del arreglo (posición n) ▫ Los mas chicos suben a la cima (posición 1). • Estudia parejas de elementos Adyacentes ▫ a[1] y a[2], a[2] y a[3]…a[i] y a[i+1]… a[n–1] y a[n]. ▫ Si a[i+1] < a[i] Entonces Los INTERCAMBIA • Algoritmo: ▫ Pasada 1: considera desde (a[1], a[2]) hasta (a[n–1], a[n]).  En a[n] esta el elemento mas grande. ▫ Pasada 2: considera desde (a[1], a[2]) hasta (a[n–2], a[n–1]).  En a[n–1] esta el segundo elemento mas grande. ▫ Pasada i: considera desde (a[1], a[2]) hasta (a[n–i], a[n-i+1]).  En a[n–i+1] esta el elemento de orden i. ▫ El proceso termina con la pasada n–1  El elemento mas pequeño esta en a[1].
  • 14. Burbuja Pasada 1: Pasada 2: Pasada 3: a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] 50 20 40 80 30 20 40 50 30 80 20 40 30 50 80 a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] 20 50 40 80 30 20 40 50 30 80 20 40 30 50 80 a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] 20 40 50 80 30 20 40 50 30 80 20 30 40 50 80 a[1] a[2] a[3] a[4] a[5] a[1] a[2] a[3] a[4] a[5] 20 40 50 80 30 20 40 30 50 80 a[1] a[2] a[3] a[4] a[5] 20 40 50 30 80
  • 15. Algoritmo: Ordenamiento por Burbuja Algoritmo ordBurbuja (a[], n) i, k, aux: enteros Repetir con i desde 1 hasta n-1 Repetir con k desde 1 hasta n-i si (a[k] > a[k+1]) entonces aux = a[k] a[k] = a[k+1] a[k+1] = aux Mejor Caso = O(n2) Caso Prom. = O(n2) Peor Caso = O(n2)
  • 16. Algoritmo: Ordenamiento por Burbuja (Modificado) Algoritmo ordBurbujaModificado (a[], n) i, k, aux: enteros ordenado: boolean Repetir con i desde 1 hasta n-1 ordenado = true Repetir con k desde 1 hasta n-i si (a[k] > a[k+1]) entonces aux = a[k] a[k] = a[k+1] a[k+1] = aux ordenado = false si (ordenado) break Mejor Caso = O(n) Caso Prom. = O(n2) Peor Caso = O(n2)
  • 17. Código en C++: Ordenamiento por Burbuja (Modificado) void ordBurbujaModificado (int a[], int n) { bool ordenado; for (int i=0; i < n-1; i++) { ordenado = true; for (int j=0; j < n - (i + 1); j++) { if (a[j] > a[j+1]) { int aux = a[j]; a[j] = a[j+1]; a[j+1] = aux; ordenado = false; } } if (ordenado) break; } }
  • 19. Ordenamiento Por Selección • Realiza sucesivas pasadas que ▫ Buscan el elemento más pequeño de la lista a y lo escribe al frente de la lista a[1]. ▫ Considera las posiciones restantes, a[2]…a[n] ▫ Finaliza cuando ya no hay Posiciones Restantes. • En la pasada i ▫ Está Ordenado: desde a[1] hasta a[i–1]. ▫ Está Desordenado: Desde a[i] hasta a[n]. • El proceso continua n–1 vueltas.
  • 20. Ejemplo: Ordenamiento por Selección a[1] a[2] a[3] a[4] Lista Original: 51 21 39 80 Pasada 1: Lista entre 1 y 4. Selecciona el menor (21) a[1] a[2] a[3] a[4] y lo pasa al a[1] 21 51 39 80 Pasada 2: Lista entre 2 y 4. Selecciona el menor (39) a[1] a[2] a[3] a[4] y lo pasa al a[2] 21 39 51 80 a[1] a[2] a[3] a[4] Pasada 3: Lista entre 3 y 4. No selecciona nada. 21 39 51 80
  • 21. Algoritmo: Ordenamiento por Selección Algortimo ordSeleccion (a[], n) menor, k, j: enteros; Repetir con i desde 1 hasta n-1 k=i /* comienzo de la exploración en índice i */ menor = a[i] Repetir con j desde i+1 hasta n si a[j] < menor entonces menor = a[j] k=j Complejidad (n (n–1))/2 a[k] = a[i] Del Orden F(n)=n2. a[i] = menor Mejor Caso = O(n ) 2 Caso Prom. = O(n2) Peor Caso = O(n2)
  • 22. Código en C++: Ordenamiento por Selección void ordSeleccion (int a[], int n) { int k, menor; for (int i=0; i < n-1; i++) { k = i; menor = a[i]; for (int j=i+1; j<n; j++) { if (a[j] < menor) { menor = a[j]; k = j; } } a[k] = a[i]; a[i] = menor; } }
  • 24. Ordenamiento Por Inserción • Similar al proceso de ordenar tarjetas en un tarjetero por orden alfabético: ▫ Consiste en insertar un elemento en su posición correcta, dentro de una lista que ya está Ordenada. • Algoritmo: ▫ El 1er elemento a[1] se lo considera ordenado. ▫ Se inserta a[2] en la posición correcta, delante o detrás del a[1], según sea mayor o menor. ▫ Por cada bucle i (desde i = 2 hasta n) se explora la sublista a[1]..a[i–1] buscando la posición correcta de inserción del elemento a[i]. ▫ Al dejar vacía la posición a[i] se impone un desplazamiento de todo el vector, desde el lugar de inserción.
  • 25. Ejemplo: Ordenamiento por Inserción a[1] a[2] a[3] a[4] Lista Original: 51 21 10 15 Pasada 1: Comenzamos en a[2] desplazando a la a[1] a[2] a[3] a[4] derecha todos los valores que sean mayores a 21 (a[1]) 21 51 10 15 Pasada 2: El 10 lo mueve hasta a[1] a[1] a[2] a[3] a[4] 10 21 51 15 a[1] a[2] a[3] a[4] Pasada 3: El 15 lo mueve hasta a[2]. 10 15 21 51
  • 26. Algoritmo: Ordenamiento por Inserción Algoritmo ordInsercion (a[], n) i, j, aux : enteros Repetir con i desde 2 hasta n aux = a[i] k = i-1 Repetir mientras (k >= 1) y (aux < a[k]) a[k+1] = a[k] Complejidad (n (n–1))/2 k = k-1 Del Orden F(n)=n2. a[k+1] = aux Mejor Caso = O(n) Caso Prom. = O(n+d) Peor Caso = O(n2) d es la cantidad de inversiones
  • 27. Código en C++: Ordenamiento por Inserción void ordInsercion (int a[], int n) { int aux, k; for (int i=1; i<n; i++) { aux = a[i]; k = i-1; while (k >= 0 && aux < a[k]) { a[k+1] = a[k]; k--; } a[k+1] = aux; } }
  • 29. Ejercicio 1 - UVA - 10327 Sorting in computer science is an important part. Almost every problem can be solved effeciently if sorted data are found. There are some excellent sorting algorithm which has already acheived the lower bound nlgn. In this problem we will also discuss about a new sorting approach. In this approach only one operation ( Flip ) is available and that is you can exchange two adjacent terms. If you think a while, you will see that it is always possible to sort a set of numbers in this way. The Problem A set of integers will be given. Now using the above approach we want to sort the numbers in ascending order. You have to find out the minimum number of flips required. Such as to sort "1 2 3" we need no flip operation whether to sort "2 3 1" we need at least 2 flip operations. The Input The input will start with a positive integer N ( N<=1000 ). In next few lines there will be N integers. Input will be terminated by EOF. The Output For each data set print "Minimum exchange operations : M" where M is the minimum flip operations required to perform sorting. Use a seperate line for each case. Sample Input 3 1 2 3 3 2 3 1 Sample Output Minimum exchange operations : 0 Minimum exchange operations : 2
  • 30. Ejercicio 2 - UVA - 299 At an old railway station, you may still encounter one of the last remaining ``train swappers''. A train swapper is an employee of the railroad, whose sole job it is to rearrange the carriages of trains. Once the carriages are arranged in the optimal order, all the train driver has to do, is drop the carriages off, one by one, at the stations for which the load is meant. The title ``train swapper'' stems from the first person who performed this task, at a station close to a railway bridge. Instead of opening up vertically, the bridge rotated around a pillar in the center of the river. After rotating the bridge 90 degrees, boats could pass left or right. The first train swapper had discovered that the bridge could be operated with at most two carriages on it. By rotating the bridge 180 degrees, the carriages switched place, allowing him to rearrange the carriages (as a side effect, the carriages then faced the opposite direction, but train carriages can move either way, so who cares). Now that almost all train swappers have died out, the railway company would like to automate their operation. Part of the program to be developed, is a routine which decides for a given train the least number of swaps of two adjacent carriages necessary to order the train. Your assignment is to create that routine. Input Specification The input contains on the first line the number of test cases (N). Each test case consists of two input lines. The first line of a test case contains an integer L, determining the length of the train ( ). The second line of a test case contains a permutation of the numbers 1 through L, indicating the current order of the carriages. The carriages should be ordered such that carriage 1 comes first, then 2, etc. with carriage L coming last. Output Specification For each test case output the sentence: 'Optimal train swapping takes S swaps.' where S is an integer. Example Input 3 3 1 3 2 4 4 3 2 1 2 2 1 Example Output Optimal train swapping takes 1 swaps. Optimal train swapping takes 6 swaps. Optimal train swapping takes 1 swaps.
  • 31. Ejercicio 3 - UVA - 11321 Hmm! Here you are asked to do a simple sorting. You will be given N numbers and a positive integer M. You will have to sort the N numbers in ascending order of their modulo M value. If there is a tie between an odd number and an even number (that is their modulo M value is the same) then the odd number will precede the even number. If there is a tie between two odd numbers (that is their modulo M value is the same) then the larger odd number will precede the smaller odd number and if there is a tie between two even numbers (that is their modulo M value is the same) then the smaller even number will precede the larger even number. For remainder value of negative numbers follow the rule of C programming language: A negative number can never have modulus greater than zero. E.g. -100 MOD 3 = -1, -100 MOD 4 = 0 etc. Input The input file contains 20 sets of inputs. Each set starts with two integers N (0<N<=10000) and M (0<M<=10000) which denotes how many numbers are within this set. Each of the next N lines contains one number each. These numbers should all fit in 32-bit signed integer. Input is terminated by a line containing two zeroes. Output For each set of input produce N+1 lines of outputs. The first line of each set contains the value of N and M. The next N lines contain N numbers, sorted according to the rules mentioned above. Print the last two zeroes of the input file in the output file also. Sample Input Sample Output 15 3 15 3 1 15 2 9 3 3 4 6 5 12 6 13 7 7 8 1 9 4 10 10 11 11 12 5 13 2 14 8 15 14 0 0 0 0