Electronica

Páginas: 5 (1121 palabras) Publicado: 6 de diciembre de 2012
Los algorítmos de ordenacion son un tema de constante estudio en las ciencias informáticas. Un buen lugar dónde empezar a investigar es la wikipedia, aquí tenemos un repaso sobre los algorítmos de ordenación.
El ordenamiento por burbuja es bastante sencillo, consiste en evaluar pares de elementos contiguos del arreglo y si el primero es mayor que el siguiente los intercambia (los más chicosquedan abajo). Todo ésto sucede dentro de dos ciclos for que recorren el arreglo. El ciclo más interno realiza las comparaciones, y se asegura ya en la primera pasada completa que el elemento ás grande del arreglo suba a la posición más alta (ésto más adelante nos permitirá desarrollar un algorítmo mejorado del método burbuja).
El programa siguiente consta de 3 funciones:-------------------------------------------------
//La usamos para desplegar los elementos del arreglo.
void mostrarArreglo(const int[], int);

//Es el algoritmo de ordenamiento por burbuja
void ordenarArreglo(int[], int);

/*Esta función es llamada por la función anterior,
y se encarga de intercambiar los pares de elementos
cuando sea necesario. Notar que recibe referencias
ya que necesitamodificar los valores de sus argumentos.*/
void intercambiar(int&, int&);
Ejemplo:
-------------------------------------------------
//Ordena burbuja, ordenamiento
//de un arreglo metodo burbuja
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void mostrarArreglo(const int[], int); //prototipo de funcion que recibe un arreglo constante
voidordenarArreglo(int[], int); //prototipo que modifica y ordena elarreglo
void intercambiar(int&, int&); //prototipo, intercambialos valores de dos elementos
int main()
{
  const int tamano = 15;
  int arreglo[tamano] = {25,17,13,16,41,32,12,115,95,84,54,63,78,21,10};
  cout << "Arreglo antes de ordenarse: " <<endl;
  mostrarArreglo(arreglo,tamano);
  cout <<"Arreglo despues de ordenarse: " <<endl;
  ordenarArreglo(arreglo,tamano);
  mostrarArreglo(arreglo,tamano);
  cout << "Fin del programa :)" << endl;
  return 0;
}//fin de main

void mostrarArreglo(const int arreglo[], int tamano)
{
  for (int i = 0 ; i < tamano ; i++)
    cout << "arreglo["<< i << "]=" << arreglo[i]<< endl;
}
voidordenarArreglo(int arreglo[], int tamano)
{
  for (int i = 0; i<tamano-1 ; i++)
    for (int j = 0; j<tamano-1 ; j++)
      if(arreglo[j] < arreglo[j+1])
 intercambiar(arreglo[j],arreglo[j+1]);
}
void intercambiar(int &a, int &b)
{
  int tmp = b;
  b = a;
  a = tmp;
}

 Descripción.
^
Este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclarrepetidamente a través de la lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que está en la siguiente posición se intercambian. ¿Sencillo no?
2. Pseudocódigo en C.
^
Tabla de variables |
Nombre | Tipo | Uso |
lista | Cualquiera | Lista a ordenar |
TAM | Constante entera | Tamaño de la lista |
i | Entero | Contador |
j | Entero | Contador |
temp| El mismo que los elementos de la lista | Para realizar los intercambios |

1. for (i=1; i<TAM; i++)
2. for j=0 ; j<TAM - 1; j++)
3. if (lista[j] > lista[j+1])
4. temp = lista[j];
5. lista[j] = lista[j+1];
6. lista[j+1] = temp;

3. Un ejemplo
^
Vamos a ver un ejemplo. Esta es nuestra lista:4 - 3 - 5 - 2 - 1
Tenemos 5 elementos. Es decir, TAM toma el valor 5. Comenzamos comparando el primero con el segundo elemento. 4 es mayor que 3, así que intercambiamos. Ahora tenemos:
3 - 4 - 5 - 2 - 1
Ahora comparamos el segundo con el tercero: 4 es menor que 5, así que no hacemos nada. Continuamos con el tercero y el cuarto: 5 es mayor que 2. Intercambiamos y obtenemos:
3 - 4 - 2 - 5 - 1...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Electronica
  • Electron
  • Electronica
  • Electronica
  • Electronica
  • Electronica
  • Electronica
  • Electrones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS