El ordenamiento por selección (Selection Sort en inglés) es un algoritmo de ordenamiento que requiere O(n2) operaciones para ordenar una lista de n elementos.
Su funcionamiento es el siguiente:
* Buscar el mínimo elemento de la lista
* Intercambiarlo con el primero
* Buscar el mínimo en el resto de la lista
* Intercambiarlo con el segundo
Y en general:
* Buscar el mínimo elemento entre una posición i y el final de la lista
* Intercambiar el mínimo con el elemento de la posición i
PROGRAMA QUE ORDENA 5 NOMBRES Y EL PROMEDIO DE 3 CALIFICACIONES CON EL METODO DE SELECCION DE MANERA ASCENDENTE Y DESCENDENTE
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j;
int aux,menor;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze 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;
}
for(i=0;i<5-1;i++)
{
for(j=i+1,menor=i;j<5;j++)//metodo de seleccion
if(prom[j]<prom[menor]) {
menor=j;
aux=prom[i];
prom[i]=prom[menor];
prom[menor]=aux;
strcpy(nombreaux,nombre[i]);
strcpy(nombre[i],nombre[menor]);
strcpy(nombre[menor],nombreaux);
}
}
clrscr();
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j;
int aux,menor;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze 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;
}
for(i=0;i<5-1;i++)
{
for(j=i+1,menor=i;j<5;j++)//metodo de seleccion
if(prom[j]<prom[menor]) {
menor=j;
aux=prom[i];
prom[i]=prom[menor];
prom[menor]=aux;
strcpy(nombreaux,nombre[i]);
strcpy(nombre[i],nombre[menor]);
strcpy(nombre[menor],nombreaux);
}
}
clrscr();
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
No hay comentarios:
Publicar un comentario