METODOS DE ORDENACION POR "INTERCABIO, SELECCIÓN, INSERCCIÓN Y BURBUJA"

HOLA A TODOS, AQUÍ LE DEJO UN PEQUEÑO EJEMPLO DE COMO EFECTUAR EL ALGORITMO EN C++, DEL CUAL ES POR EL MÉTODO DE SELECCIÓN, ESPERO QUE LES AYUDE!!

ORDENAMIENTO
Es la operación de arreglar los registros de una tabla en algún orden secuencial de
acuerdo a un criterio de ordenamiento. El ordenamiento se efectúa con base en el valor
de algún campo en un registro. El propósito principal de un ordenamiento es el de
facilitar las búsquedas de los miembros del conjunto ordenado.
El ordenar un grupo de datos significa mover los datos o sus referencias para que
queden en una secuencia tal que represente un orden, el cual puede ser numérico,
alfabético o incluso alfanumérico, ascendente o descendente.
no olviden dejar sus comentarios, gracias!!


código:

#include<stdio.h>
#include<conio.h>
int v[100000],n;
void num_ordenados()
{
int valor_temporal;
for (int q=0;q<n-1;q++)/*declaramos dos ciclos para poder ir comparando 0-1,1-2,2-3,...hasta n.
{
for (int w=q+1;w<n;w++)
{
if (v[w]<v[q])
{
valor_temporal=v[w];/*se asigna el valor encontrado*/
v[w]=v[q];/*ahora el valor de v[q] toma el de v[w] para poder compararlo de nuevo con el siguiente numero*/
v[q]=valor_temporal;
}
}
}
}
void orden()/*para poder imprimirlos en orden*/
{
for (int t=0;t<n;t++)
{
printf("\t%d\n",v[t]);
}
}
main()
{
printf("cant. de numeros: ");
scanf("%d",&n);
for (int i=0; i<=n-1;i++)
{
printf("\ningrse numero %d: ",i+1);
scanf("%d",&v[i]);
}
printf("\norden en el que fueron ingresado:\n\n");
orden();/*llamamos nuetra operacion para imprimirlo con el orden en el que fueron ingresados*/
num_ordenados();/*luego ya con el metoo de seleccion*/
printf("\n");
printf("\nmetodo de seleccion:\n\n");
orden();
}



MÉTODO DE BURBUJA:

código:
#include<stdio.h>
#include<conio.h>
main()
{
int temp;
int arreglo[10]={8,4,2,9,6,3,5,7,1,10};
for (int b=0;b<11;b++)/*esto sirve para que el arreglo pueda compararce las veces nesesarias y asi poder imprimir los numeros ordenados ejemplo de esto aqui
{
 for (int i=0;i<8;i++)
 {
if (arreglo[i+1]<arreglo[i])
{
temp=arreglo[i];
arreglo[i]=arreglo[i+1];
arreglo[i+1]=temp;
}
 }
    }
    printf("\nordenamiento por el emtodo de burbuja (bubblesort)");
for (int x=0;x<9;x++)
{
printf("\n%d",arreglo[x]);
}
}



MÉTODO DE ORDENACIÓN POR INSERCIÓN:

#include<conio.h>
#include<stdio.h>
int num[100000],n;
void insercion()
{
int tem;
for (int q=1;q<n;q++)
{
tem=num[q];
for (int j=q;j>0 && tem<num[j-1];j--)
{
num[j]=num[j-1];
num[j-1]=tem;
}
}
void imprimir()
{
for (int h=0;h<n;h++)
{
printf("\t%d",num[h]);
}
}
main()
{
printf("cant. de numeros: ");
scanf("%d",&n);
for (int y=0;y<n;y++)
{
printf("valor %d: ",y+1);
scanf("%d",&num[y]);
}
printf("\norden ingresados:\n\n");
imprimir();
insercion();
printf("\n\nmetodo de insercion:\n\n");
imprimir();
getch();
}




espero que les haya sido útil, todavía seguiré subiendo nuevos programas para que vayan entendiendo esto!!
no olvides dejar tu comentario



gracias.

17 comentarios:

  1. GRACIAS ME AYUDO BASTANTE

    ResponderEliminar
  2. muy bueno y entendible

    ResponderEliminar
  3. NMAS EL PRIMERO NO SUPE CUAL FUE, PERO NO SABIA QUE SE PODIAN HACER OTRO TIPO DE COSAS JE GRAXIAX!

    ResponderEliminar
  4. me pueden ayudar con este algoritmo me piden que organice los usuarios por edades y que de la opción de eliminar un usuario y luego el algoritmo se tiene que actualizar
    //1)ENCUENTRE Y MUESTRE TODOS LOS DATOS DE UNA MAQUINA EN PARTICULAR
    //2) LOS DATOS DE LA MAQUINA QUE MANIPULA UN OPERARIO EN PARTICULAR
    //3) EL NUMERO DE SEXO MASCULINO O FEMENINO

    #include
    #include
    #include
    using namespace std;

    const
    int L=4;
    const
    int La=10;

    struct Maquina
    {
    int codigom;
    string nombre;
    int htdiario;
    };
    struct buscar
    {
    int codigom;
    };
    struct organizaro
    {
    int edad;

    };
    struct Operario
    {
    int codigoo;
    string nombre;
    int edad;
    string sexo;
    int codigom;
    };

    Maquina vm[L];
    Operario vo[La];
    buscar vb[L];
    int pm=-1;
    int po=-1;

    int buscarm(int codigo)
    {
    int encontrado,i;
    encontrado=-1;
    for(i=0;i<=pm;i++)
    {
    if(codigo==vm[i].codigom)
    encontrado=i;
    if(encontrado!=-1)
    break;
    }
    return(encontrado);
    }

    void Llenarm()
    {
    Maquina tmp;
    int p;
    if(pm>tmp.codigom;
    cout<<"Digite nombre"<>tmp.nombre;
    cout<<"Digite duracion"<>tmp.htdiario;
    if(pm==-1)
    {
    pm=pm+1;
    vm[pm]=tmp;
    }
    else
    {
    p=buscarm(tmp.codigom);
    if(p!=-1)
    {
    cout<<"El codigo ya existe"<>tmp.codigoo;
    cout<<"..................."<>tmp.nombre;
    cout<<"..................."<>tmp.edad;
    cout<<"..................."<>tmp.sexo;
    cout<<"..................."<>tmp.codigom;

    if(po==-1)

    {
    bm=buscarm(tmp.codigom);
    if(bm==-1)
    cout<<"El programa no existe"<>tmp.codigom;
    if (pm==-1)
    bb=buscarm(tmp.codigom);
    if(bb==-1)
    cout<<"El programa no existe"<>codigoM;
    for(i=0;i<=po;i++)
    {
    if(vo[i].codigom==codigoM){
    tmp1=vo[i];
    cout<>codigoA;
    tmp1=buscaro(codigoA);
    for(i=0;i<=po;i++)
    {
    if(vo[tmp1].codigoo==vm[i].codigom){
    cout<>sexoo;
    for(i=0;i<=po;i++)
    {
    if(vo[i].sexo==sexoo){
    cont++;
    }
    }
    cout<<"las personas con sexo "<>op;
    do
    {
    if(op==1)
    {
    Llenarm();
    system("cls");
    }
    else
    if(op==2)
    {
    llenarO();
    system("cls");
    }
    else
    if(op==3)
    {
    system("cls");
    MostrarM();

    }
    else
    if(op==4)
    {
    system("cls");
    MostrarO();

    }

    else
    if (op==5)
    {
    system("cls");
    MostrarOp_Ma();

    }
    else
    if(op==6)
    {
    system("cls");
    MostrarMS();
    }
    else
    if(op==7)
    {
    system("cls");
    MostrarS();
    }
    else
    system("cls");

    cout<<"HOLA BIENVENIDO REVISE EL SIGUIENTE MENU "<>op;
    }while((op>=1)&&(op<=7));

    exit(0);
    return(0);
    }

    ResponderEliminar
  5. en un concurso de admision de la Utp SE PRESENTARON MAS DE 4000 ALUMNOS, ELABORE UN PROGRAMA PARA LEER LOS PUNTAJES OBTENIDOS POR LOS POSTULANTES (GENERE LOS PUNTAJES DE 0 A 1000 PUNTOS)E IMPRIMIR DICHOS PUNTAJES EN ORDEN DESCENDENTE , ASIMISMO IMPRIMIR UNA LISTA DE LOS POSTULANTES QUE ALCANZARON UNA VACANTE QUE SON EL 20% DE LOS POSTULANTES Q OBTUVIERON LA MEJOR NOTA E IMPRIMIR EL PUNTAJE MAXIMO Y MINIMO DE INGRESANTE , POR METODO DE INSERCCION

    ResponderEliminar
  6. Necesito q me ayuden me pidieron un ejercicio donde se explique el método de intercambio y busco pero me aparece q es el mismo burbuja y tengo la duda por favor ayuda

    ResponderEliminar
  7. Gracias amigo pude aclarar mi codigo :D

    ResponderEliminar
  8. necesito programar en cuanto tiempo demora la maquina en hacer el intercambio por método de seleccion

    ResponderEliminar
  9. necesito programar en cuanto tiempo demora la maquina en hacer el intercambio por método de seleccion

    ResponderEliminar
  10. Hola me podrías ayudar como harías el método burbuja con 5000 cifras

    ResponderEliminar
  11. explica la parte del ordenamiento en la inserción de valores

    ResponderEliminar