elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:23  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Algunos Tipos de Ordenamientos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algunos Tipos de Ordenamientos  (Leído 137 veces)
NorochiiAnon

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Algunos Tipos de Ordenamientos
« en: 25 Mayo 2011, 18:29 »

Código
// Ordenamientos.cpp 
//Tipos de ordenamientos con enteros y caracteres utilizando memoria dinamica
//By Norochii
//Estructura de Datos
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include "time.h"
#include <math.h>
#define NUMELTS 20
 
using namespace std;
 
class ordenamientos
{
private:
int j,i,temp,x;
int *listaEnteros;
char *listaCaracteres;
public:
ordenamientos();
~ordenamientos();
void ordenamientoBurbuja();
void ordenamientoInsercion();
void ordenamientoShell();
 
 
};
 
ordenamientos::ordenamientos()
{
i=0;
j=0;
temp=0;
x=0;
}
 
ordenamientos::~ordenamientos()
{}
 
void ordenamientos::ordenamientoBurbuja()
{
int opc;
cout<<"                                 Metodo Burbuja "<<'\n'<<endl;
cout<<"                               Que deseas Ordenar"<<endl;
cout<<"                                   1.- Numeros"<<endl;
cout<<"                                   2.- Letras"<<endl;
cout<<"                                    Opcion: ";
cin>>opc;
system("cls");
switch(opc)
{
 
case 1:
cout<<"Introduzca el numero de elementos a insertar "<<endl;
cout<<"Numeros de Elementos: ";
cin>>x;
listaEnteros= new(nothrow) int[x];
system("cls");
cout<<"Introduzca los elementos de la lista"<<endl;
for(i=0; i<x; i++)
{
cin>>listaEnteros[i];
}
for(i=0;i<x-1;i++)
{
for(j=i+1;j<x;j++)
{
if(listaEnteros[i]>listaEnteros[j])
{
temp=listaEnteros[i];
listaEnteros[i]=listaEnteros[j];
listaEnteros[j]=temp;
}
}
 
}
system("cls");
cout<<"Elementos Ordenados :"<<endl;
for(i=0; i<x; i++)
{
cout<<endl;
cout<<"Elemento "<< i+1<<": " <<listaEnteros[i]<<endl;
}
delete[] listaEnteros;
break;
case 2:
 
cout<<"Introduzca el numero de elementos a insertar "<<endl;
cout<<" Numeros de Elementos: ";
cin>>x;
listaCaracteres= new(nothrow) char[x];
system("cls");
cout<<"Introduzca los elementos de la lista"<<endl;
for(i=0; i<x; i++)
{
cin>>listaCaracteres[i];
}
for(i=0;i<x-1;i++)
{
for(j=i+1;j<x;j++)
{
if(listaCaracteres[i]>listaCaracteres[j])
{
temp=listaCaracteres[i];
listaCaracteres[i]=listaCaracteres[j];
listaCaracteres[j]=temp;
}
}
 
}
system("cls");
cout<<"Elementos Ordenados :"<<endl;
for(i=0; i<x; i++)
{
cout<<endl;
cout<<"Elemento "<< i+1<<": " <<listaCaracteres[i]<<endl;
}
delete[] listaCaracteres;
break;
 
}
}
 
void ordenamientos::ordenamientoInsercion()
{
int opc;
cout<<" Metodo Por Insercion "<<'\n'<<endl;
cout<<" Que deseas Ordenar"<<endl;
cout<<" 1.- Numeros"<<endl;
cout<<" 2.- Letras"<<endl;
cout<<"                                Opcion: ";
cin>>opc;
system("cls");
switch(opc)
{
case 1:
           cout<<" Introduzca el numero de elementos a insertar "<<endl;
           cout<<"Numeros de Elementos: ";
           cin>>x;
listaEnteros= new(nothrow) int[x];
system("cls");
cout<<"Introduzca los elementos de la lista"<<endl;
for(i=0; i<x; i++)
{
cin>>listaEnteros[i];
}
for (i = 1; i < x; i++)
{
temp = listaEnteros[i];
j = i - 1;
while ( (listaEnteros[j] > temp) && (j >= 0) )
{
listaEnteros[j + 1] = listaEnteros[j];
j--
listaEnteros[j + 1] = temp;
}
}
system("cls");
cout<<"Elementos Ordenados :"<<endl;
for(j=0; j<x; j++)
{
cout<<endl;
cout<<"Elemento "<< j+1<<": " <<listaEnteros[j]<<endl;;
}
delete[] listaEnteros;
break;
case 2:
 
cout<<"Introduzca el numero de elementos a insertar "<<endl;
cout<<"  Numeros de Elementos: ";
cin>>x;
listaCaracteres= new(nothrow) char[x];
system("cls");
cout<<"Introduzca los elementos de la lista"<<endl
for(i=0; i<x; i++)
{
cin>>listaCaracteres[i];
}
 
for(i=0;i<x-1;i++)
{
for(j=i+1;j<x;j++)
{
if(listaCaracteres[i]>listaCaracteres[j])
{
temp=listaCaracteres[i];
listaCaracteres[i]=listaCaracteres[j];
listaCaracteres[j]=temp;
}
}
 
}
 
system("cls");
cout<<"Elementos Ordenados :"<<endl;
for(j=0; j<x; j++)
{
cout<<endl;
cout<<"Elemento "<< j+1<<": " <<listaCaracteres[j]<<endl;;
}
 
delete[] listaCaracteres;
break;
 
}
}
 
 
void ordenamientos::ordenamientoShell()
{
int inter,x,n=0,i=0,j=0,k=0,temp;
int opc;
cout<<"Metodo de Shell "<<'\n'<<endl;
cout<<"                            Que deseas Ordenar"<<endl;
cout<<"                               1.- Numeros"<<endl;
cout<<"                               2.- Letras"<<endl;
cout<<"                                Opcion: ";
cin>>opc;
system("cls");
switch(opc)
{
case 1:
cout<<"Introduzca el numero de elementos a insertar "<<endl;
cout<<"                    Numeros de Elementos: ";
       cin>>x;
inter = x/2;
listaEnteros= new(nothrow) int[x];
system("cls");
cout<<"Introduzca los elementos de la lista"<<endl;
for(i=0; i<x; i++)
{
cin>>listaEnteros[i];
}
           while(inter>0)
{
 
for(i=inter;i<x;i++)
{
 
n++;
 
j=i-inter;
 
while(j>=0)
{
 
k=j+inter;
 
if(listaEnteros[j]<=listaEnteros[k])
{
j--;
}
 
else
{
 
temp=listaEnteros[j];
 
listaEnteros[j]=listaEnteros[k];
 
listaEnteros[k]=temp;
 
j=j-inter;
}
 
}
 
}inter = inter/2;
}
 
 
system("cls");
 
cout<<"Elementos Ordenados :"<<endl;
 
for(j=0; j<x; j++)
{
 
cout<<endl;
 
cout<<"Elemento "<< j+1<<": " <<listaEnteros[j]<<endl;;
 
}
 
delete[] listaEnteros;
 
break;
 
case 2:
 
cout<<"            Introduzca el numero de elementos a insertar "<<endl;
 
cout<<"                    Numeros de Elementos: ";
 
cin>>x;
 
inter = x/2;
 
listaCaracteres= new(nothrow) char[x];
 
system("cls");
 
cout<<"Introduzca los elementos de la lista"<<endl;
 
for(i=0; i<x; i++)
{
 
cin>>listaCaracteres[i];
}
 
while(inter>0)
{
 
for(i=inter;i<x;i++)
{
 
n++;
 
j=i-inter;
 
while(j>=0)
{
 
k=j+inter;
 
if(listaCaracteres[j]<=listaCaracteres[k])
{
j--;
}
 
else
{
 
temp=listaCaracteres[j];
 
listaCaracteres[j]=listaCaracteres[k];
 
listaCaracteres[k]=temp;
 
j=j-inter;
}
 
}
 
}inter = inter/2;
}
 
 
system("cls");
 
cout<<"Elementos Ordenados :"<<endl;
 
for(j=0; j<x; j++)
{
 
cout<<endl;
 
cout<<"Elemento "<< j+1<<": " <<listaCaracteres[j]<<endl;;
 
}
 
delete[] listaCaracteres;
 
break;
 
}
}
 
 
void  main()
{
int inicio,fin,tiempo,opcion;
inicio=clock();
ordenamientos O;
cout<<" Selecciones el Metodo de Ordenamiento: "<<endl;
cout<<'\n'<<"                                  1.- Metodo Burbuja "<<endl;
cout<<"                                2.- Metodo de Insercion "<<endl;
cout<<"                                 3.- Metodo de Shell "<<endl;
cout<<"                                     Metodo Numero: ";
cin>>opcion;
system("cls");
switch(opcion)
{
case 1:
O.ordenamientoBurbuja();
break;
case 2:
O.ordenamientoInsercion();
break;
case 3:
O.ordenamientoShell();
break;
 
       fin = clock();
tiempo = fin-inicio;
cout<<'\n'<<"Tiempo de Ejecucion: "<<tiempo<<" Milisegundos"<<endl;
system("PAUSE");
 
}
}
 


« Última modificación: 25 Mayo 2011, 19:05 por Norochii » En línea

Norochii
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines