Evaluación 12
- Ybana Ventura Hector A.
- 16 jun 2019
- 2 Min. de lectura
Métodos de Ordenamiento
#include<iostream>
#include<math.h>
using namespace std;
int i,A[10],r,axu,n,menor,j,k,a,inc,izquierda,derecha;
float leer(),ordenar(),ver(),Seleccion(),Burbuja(),ordenar1(),Insercion(),ordenar2(),Shell(),QuickSort(),ordenar3(int A[],int n),ordenar4(int A[],int izquierda,int derecha);
int main(){
int opcion;
do{
cout<<"METODO DE ORDENAMIENTO: \n";
cout<<"1)Burbuja: \n";
cout<<"2)Seleccion: \n";
cout<<"3)Insercion: \n";
cout<<"4)Shell: \n";
cout<<"5)Quick Sort: \n";
cout<<endl;
cout<<"Eliga Opcion\n";
cin>>opcion;
if(opcion>0,opcion<6){
switch (opcion){
case 1:{
Burbuja();
break;
}
case 2:{
Seleccion();
break;
}
case 3:{
Insercion();
break;
}
case 4:{
Shell();
break;
}
case 5:{
QuickSort();
break;
}
}
}else
cout<<"Opcion no existente\n";
cout<<endl;
cout<<endl;
}while (opcion!=0);
return(0);
}
float Burbuja(){
cout<<"------------Metodo Burbuja---------\n";
int opcion1;
cout<<"1)Leer: \n";
cout<<"1)Oredenar: \n";
cout<<"2)Ver: \n";
cout<<endl;
cin>>opcion1;
if(opcion1>0,opcion1<4)
{
switch (opcion1)
{
case 1:
{
leer();
};break;
case 2:
{
ordenar();
};break;
case 3:
{
ver();
};break;
}
}
}
float leer()
{
cout<<endl;
cout<<"---------Leer Vectores---------\n";
cout<<endl;
cout<<"Total= ";cin>>n;cout<<endl;
i=1;
cout<<"Vector[]\n";
while(i<=n){
cout<<"Vector["<<i<<"]= ";
cin>>A[i];
i=i+1;
}cout<<endl;
}
float ordenar()
{
cout<<endl;
cout<<"--------Ordenamiento-------\n";
cout<<endl;
for(r=1;r<=n-1;r++){
for(i=1;i<=n;i++){
if(A[i]>A[i+1]){
axu=A[i];
A[i]=A[i+1];
A[i+1]=axu;
}
}
}
}
float ver()
{
cout<<endl;
cout<<"--------Mirar Vectores-------\n";
cout<<endl;
i=1;
cout<<"Vector[]\n";
while(i<=n)
{
cout<<"Vector["<<i<<"]= ";
cout<<A[i];
i=i+1;
cout<<endl;
}
cout<<"# Vueltas: "<<r<<endl;
cout<<endl;
}
float Seleccion()
{
cout<<"----------Metodo Seleccion-------\n";
int opcion2;
cout<<"1)Oredenar: \n";
cout<<"2)Ver: \n";
cout<<endl;
cin>>opcion2;
if(opcion2>0,opcion2<3)
{
switch (opcion2)
{
case 1:
{
ordenar1();
};break;
case 2:
{
ver();
};break;
}
}
}
float ordenar1()
{
for(i=1;i<=n;i++)
{
menor=A[i];
k=i;
for(j=1;j<=n;j++)
{
if(A[j]<menor)
{
menor=A[j];
k=j;
}
}A[k]=A[i];
A[i]=menor;
}
}
float Insercion()
{
cout<<"-----------Metodo Insercion--------\n";
int opcion3;
cout<<"1)Oredenar: \n";
cout<<"2)Ver: \n";
cout<<endl;
cin>>opcion3;
if(opcion3>0,opcion3<3)
{
switch (opcion3)
{
case 1:
{
ordenar2();
};break;
case 2:
{
ver();
};break;
}
}
}
float ordenar2()
{
for (i=1; i<n; i++)
{
a=A[i];
j=i - 1;
while ( (A[j] >a) && (j >= 0) )
{
A[j+1] = A[j];
j--;
A[j+1] = a;
}
}
}
float Shell()
{
cout<<"----------Metodo Shell---------\n";
int opcion4;
cout<<"1)Oredenar: \n";
cout<<"2)Ver: \n";
cout<<endl;
cin>>opcion4;
if(opcion4>0,opcion4<3)
{
switch (opcion4)
{
case 1:
{
ordenar3(A,n);
};break;
case 2:
{
ver();
};break;
}
}
}
float ordenar3(int A[],int n)
{
int i, j, inc,axu;
for(inc=1 ; inc>0;)
{
for (i=inc;i=inc;A[j-inc]>axu)
{
A[j] = A[j-inc];
j = j-inc;
}A[j] = axu;
}inc/= 2;
}
float QuickSort(){
cout<<"---------Metodo Quick Sort-------\n";
int opcion5;
cout<<"1)Oredenar: \n";
cout<<"2)Ver: \n";
cout<<endl;
cin>>opcion5;
if(opcion5>0,opcion5<3)
{
switch (opcion5)
{
case 1:
{
ordenar4(A,izquierda,derecha);
};break;
case 2:
{
ver();
};break;
}
}
}
float ordenar4(int A[],int izquierda,int derecha)
{
int i,j,x,axu;
i=izquierda;
j=derecha;
x=A[(izquierda+derecha)/2];
do{
while((A[i]<x) && (j<=derecha))
{
i++;
}
while((x<A[j]) && (j>izquierda))
{
j--;
}
if( i<= j)
{
axu=A[i];
A[i]=A[j];
A[j]=axu;
i++;
j--;
}
}while( i <= j );
if( izquierda < j )
{
ordenar4(A,izquierda,j);
}
if( i < derecha )
{
ordenar4(A,i,derecha);
}
}
Comentários