jueves, 28 de octubre de 2010

ORDENACIÓN POR INSERCIÓN

Código fuente del programa

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include<string.h>

void main()
{
clrscr();
char nombre[5][30];
int cal[3][5];
int prom[5];
int temp;
char nombretemp[20];
int suma;
int i,j,k;
char t;
int inter;
for(i=0;i<5;i++){
 suma=0;
cout<<"Introduce el nombre"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
 prom[i]=suma/3;
cout<<nombre[i]<<endl;
cout<<"promedio :"<<prom[i]<<endl;
}
//ordenacion po inseccion
for(i=1;i<5;i++){
t=prom[i];
 for(k=i-1;(k>=0)&&(t<prom[k]);k--)
{
prom[k+1]=prom[k];
prom[k-1]=t;
strcpy(nombretemp,nombre[k]);
strcpy(nombre[k],nombre[k+1]);
strcpy(nombre[k+1],nombretemp);
}
}
cout << "Los promedios ordenados de manera ascendente son"<<endl;
  for(i=0;i<5;i++){
  cout<<prom[i]<<"  "<<nombre[i]<<endl;
}
cout << "Las promedios ordenados de manera descendente son"<<endl;
  for(i=4;i>=0;i--){
  cout<<prom[i]<<"  "<<nombre[i]<<endl;
}
getch();
}


En este programa se captura cinco nombres  y tres calificaciones de cada uno de ellos, así mismo se determina su promedio y por medio del método de ordenación por inserción se ordenan de manera ascendente y descendente   con su respectivo nombre.
Este método inicialmente ordena los dos primeros miembros del array, después el algoritmo inserta el tercer miembro en su posición correcta respecto de los  dos primeros miembros del array  y así sucesivamente hasta que todos los miembros quedan ordenados  correctamente.

No hay comentarios:

Publicar un comentario