metodos de ord

METODOS DE ORDENAMIENTO
BURBUJA
#include"iostream.h"
#include"conio.h"
void main()
{  clrscr();
int aux,i,A[20],n,j;
cout<<"Ingrese la cantidad de  elementos  :";
cin>>n;
cout<<endl;
cout<<"Ingrese los elementos del vector "<<endl;
 for(i=1;i<=n;i++)
 {
   cout<<"A["<<i<<"]:";cin>>A[i];
 }
 cout<<endl;
cout<<"ORDENANDO POR BURBUJA "<<endl;

   for(i=1;i<=n;i++)
     {
      for(j=i+1;j<=n;j++)
       if(A[i]>=A[j])
    {
      aux=A[i];
      A[i]=A[j];
      A[j]=aux;
     }
      }
  for(i=1;i<=n;i++)
 {
   cout<<"A["<<i<<"]:"<<A[i]<<endl;

  }
getch();
}
HEAP SORT
#include<iostream.h>
#include<conio.h>
void main(){
    int m,n,a,K[10];
    cout<<"Ingrese el orden del array ";
    cin>>a;
    for(m=1;m<=a;m++){
     cout<<"el vector ["<<m<<"] : ";
     cin>>K[m];
    }
    int ma,in,d;
    for(m=a;m>=2;m--){
    ma=K[m];  
    in=m;
     for(n=1;n<=m-1;n++){
      if(K[n]>ma){
       ma=K[n];
       in=n;
       }
      }
    for(d=in;d<=m-1;d++){
        K[d]=K[d+1];
    }    
      K[m]=ma;
     }
    cout<<"Ordenado es: "<<endl;
    for(m=1;m<=a;m++){
     cout<<K[m]<<" ";
    }
       getch();
 }
INSERCION SORT
#include<iostream.h>
#include<conio.h>
int main(){
    int m,n,a,K[10];
    cout<<"Ingres el orden del array ";
    cin>>a;
    for(m=1;m<=a;m++){
        cin>>K[m];
    }
    int r,d,b;
    for(m=2;m<=a;m++){
        if(K[m-1]>K[m]){
            r=K[m];
            b=m;
            for(d=m-1;d>=1;d--){
             if(K[d]>r)
                b=b-1;
            }
            for(n=m;n>=b+1;n--){
            K[n]=K[n-1];
            }
          K[b]=r;
        }
    }
    for(m=1;m<=a;m++){
    cout<<"\t"<<K[m];
    }
    getch();
    return 0;
}
INSERSION
#include<iostream.h>
#include<conio.h>

void main(){
    int a,K[10],y,num;
    cout<<"Ingrese la dimensión del array   ";
    cin>>a;
    cout<<"Ingrese los numeros "<<endl;
    for(int m=1;m<=a;m++){
        cin>>K[m];
    }
   
    for(m=2;m<=a;m++){
           y=m;
           num=K[m];
        while(K[y]<K[y-1] && y>1){
            K[y]=K[y-1];
            y--;
        }
        K[y]=num;
    }

    for(m=1;m<=a;m++){
        cout<<"  "<<K[m];
    }

    getch();
}
MERGE SORT
#include"conio.h"
#include<iostream.h>

void crear(struct nodo **);
void insertar(struct nodo **,int);
void recorrer_InOrden(struct nodo **);

struct nodo{
    int valor;
    struct nodo *i;
    struct nodo *d;
    };

void main(){  clrscr();
    struct nodo *arbol;
    short a;
    int num;

    cout<<"Ingrese la cantidad de numeros a evluar "<<endl;
    cin>>a;

    crear(&arbol);

    cout<<endl<<"Ingrese los numeros "<<endl<<endl;

    for(unsigned short m=1;m<=a;m++){
        cin>>num;
        insertar(&arbol,num);
    }


    cout<<endl<<endl<<"Ordenado por merge sort es : "<<endl<<endl;
    recorrer_InOrden(&arbol);

    cout<<endl<<endl;
        getch();
}

void crear(struct nodo **arbol){
    (*arbol)=NULL;
}

void insertar(struct nodo **arbol,int numero){
    struct nodo *aux,*p,*ant;

    aux=new nodo;
    aux->valor=numero;
    ant = NULL;

    p= *arbol;

    while(p!=NULL){
        ant=p;
        if(numero<p->valor)
            p=p->i;
        else
            p=p->d;
    }

    if(ant==NULL){
        aux->i= *arbol;
        aux->d= *arbol;
        *arbol=aux;
    }
    else{
        if(numero>ant->valor)
            ant->d=aux;
        else
            ant->i=aux;

        aux->i=p;
        aux->d=p;
    }
}


void recorrer_InOrden(struct nodo **arbol){

    if((*arbol)->i!=NULL)
        recorrer_InOrden(&(*arbol)->i);

    cout<<"  "<<(*arbol)->valor;

    if((*arbol)->d!=NULL)
        recorrer_InOrden(&(*arbol)->d);
}
QUICK SORT
 #include<conio.h>
#include<stdio.h>
 void main()
     {
     int n,A[10];
     int i,izq,der,aux,pos;
     int bandera;

     printf("\n ORDDENAMIENTO POR QUICK SORT \n");
     printf("\n ingrese la dimencion del arreglo a ordenar\n");
     scanf("%d",&n);
     for(i=1;i<=n;i++)
      {
      printf("arreglo[%d]",i);
      scanf(" %d",&A[i]);
      }
     //ordenado por el metodo de la seleccion
      izq=1;
      pos=1;
      bandera=1;
     while(bandera==1)
     {
     der=n;
      while((A[pos]<A[der])&&(pos!=der))
     {
      der=der-1;
      }
      if(pos==der)
      {
        pos=pos+1;
        bandera=1;
        }
        else
        {
         aux=A[pos];
         A[pos]=A[der];
         A[der]=aux;
         pos=der;
          while((A[pos]>=A[izq])&&(pos!=izq))
            izq=izq+1;
          if(pos==izq)
            bandera=0;
          else
          {
            aux=A[pos];
            A[pos]=A[izq];
            A[izq]=aux;
            pos=izq;
            }
         }
        }
      //escribir el arreglo ordenado
     printf("\n el arreglo ordenado es de la siguiente forma \n");
     for(i=1;i<=n;i++)
      printf("\n arreglo[%d]= %d\n",i,A[i]);
  getch();
 }
SELECCION SORT
#include<iostream.h>
#include<conio.h>

void main(){
    int A[10],n;

    cout<<"INgrese la dimension del array "<<endl;
    cin>>n;
   
    cout<<endl<<"Ingrese los numeros "<<endl;
    for(int i=1;i<=n;i++){
        cin>>A[i];
    }

    // Proceso seleccion

    int menor,indice;

    for(i=1;i<=n-1;i++){
        menor=A[i];
        indice=i;
        for(int j=i+1;j<=n;j++){
            if(menor>A[j]){
                menor=A[j];
                indice=j;
            }
        }
       
        A[indice]=A[i];
        A[i]=menor;
    }

    for(i=1;i<=n;i++){
        cout<<"  "<<A[i];
    }

    getch();
}
    SHELL SORT
#include"iostream.h"
#include"conio.h"
void main()
{  clrscr();
int aux,i,A[20],n,salto,j;
cout<<"Ingrese la cantidad de  elementos  :";
cin>>n;
cout<<endl;
cout<<"Ingrese los elementos del vector "<<endl;
 for(i=1;i<=n;i++)
 {
   cout<<"A["<<i<<"]:";cin>>A[i];
 }
 cout<<endl;
cout<<"ORDENANDO POR SHELL "<<endl;
 salto=int(n/2);
 while(salto!=0)
 {
   for(i=1;i<=n;i++)
     {  for(j=i+salto;j<=n;j++)
       if(A[i]>=A[j])
    {
      aux=A[i];
      A[i]=A[j];
      A[j]=aux;
     }
      }
      salto=int(salto/2);
    }

  for(i=1;i<=n;i++)
 {
   cout<<"A["<<i<<"]:"<<A[i]<<endl;

  }
getch();
}

No hay comentarios:

Publicar un comentario