Metodos de ordenamientos con arreglos

C++, Visual Basic, Python, PHP, Javascript, te suenan a algo? Seguramente eres coder..
Responder

Topic author
inmortal62
Mensajes: 79
Registrado: Sab Abr 16, 2011 11:57 pm
Ubicación: Anzoategui

Metodos de ordenamientos con arreglos

Mensaje por inmortal62 »

En este post le dare los 2 metodos claves para ordenar cualquier cosa en nuestro lenguaje c++

compilador utilizado turbo c++ 4.5

problema: Ordenar numeros de mayor a menor

Primer método:

Método de la burbuja

Código: Seleccionar todo

include<conio.h>
#include<iostream.h>
#define max 100

void main()
{	

          int n,i, num[max],aux, cambio; //declaramos nuestas variables, cambio sera una variable de control

      do{ 
            cout<<"ingrese la cantidad a numeros a leer: ";// le pedimos al usuario cuantos numero piensa leer
            cin>>n;
          }while(n<1||n>50); // dentro de un rango de 1 y 15

            for(i=0;i<n;i++)
                 {   
                     cout<<"ingrese el valor #"<<i+1<<": ";          //leemos los numeros
                     cin>>num[i];
                 }

//aplicamos el metodo de ordenamiento burbuja

           do{
                   cambio=0;
                          for(i=0;i<n-1;i++)
                                 { 
                                       if(num[i]<num[i+1])
                                         { 
                                         cambio=1;
                                         aux=num[i];
                                         num[i]=num[i+1];
                                         num[i+1]=aux;
                                          } 
                                }

                }while(cambio==1); //mientra que el cambio sea igual a 1 el estara ordenando hasta que quede todo bien


                       cout<<"los numeros ordenados de mayor a menor son: "; //luego mostramos :P
                                 for(i=0;i<n;i++)
                                         cout<<num[i]<<" ";
}
Segundo método

Método de selección

Código: Seleccionar todo

#include<conio.h>
#include<iostream.h>
#define max 100

void main()
{	
    int n,i, num[max],aux;

             do{ cout<<"INGRESE LA CANTIDAD A NUMEROS A LEER: ";
                   cin>>n;
                 }while(n<1||n>50);

               for(i=0;i<n;i++)
                  {
                          cout<<"INGRESE EL VALOR #"<<i+1<<": ";
                          cin>>num[i];
                  }

//HASTA AQUI LO MISMO QUE LO ANTERIOR LO NUEVO VA DESDE AQUI HACIA ABAJO
/*2 FOR PARA QUE LOS ELEMENTO SE UBICO UNO AL LADO DEL Y UNO SOLO DE ELLOS SE MOVERA POR EL ARREGLO COMPARANDOLO CON EL PRIMERO AL LLEGAR AL ULTILMO EL CONTADOR UBICADO EN LA PRIMERA POSICION DEL ARREGLO SE MUEVE UNA CASILLA Y VUELVE HACER LA OPERACION*/	

                       for(i=0;i<n-1;i++)
                            {
                                for(j=i+1;j<n;j++)
                                      {
                                          if(num[i]<num[j])
                                               { 
                                                  aux=num[i];
                                                  num[i]=num[j];
                                                  num[j]=aux;
                                               }
                                     }
                            }

                        cout<<"LOS NUMEROS ORDENADOS DE MAYOR A MENOR SON: ";

                              for(i=0;i<n;i++)
                                   cout<<num[i]<<" ";
}
Un ejemplo muy dinámico de como funciona el método de la burbuja
http://www.youtube.com/watch?v=lyZQPjUT ... r_embedded
Intel I5 2500 3.3Ghz Whit Fan Cooler Stock
GigaByte P67A-UD3-B3
Memorias Corsair XMS3 4x2Gb 1333Mhz
Monitor LED LG E2241S 21'5 HD
Case Sentey Vulcano
PSU Antec EA 750watts
HDD Wester Digital Caviar Gree 1TB
Ati Sapphire Radeon HD 6850 1GB
Programador en C++ && Java
Imagen
Responder