ARCHIVO: main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Estructura.h"
void selectionSort(Numero registros[],int n){
int i,j,indiceMenor;
int claveMenor;
printf("SELECTION SORT ordenando registros...\n");
for(i=0;i<n-1;i++){
indiceMenor=i;
claveMenor=registros[i].id;
for(j=i+1;j<n;j++){
if (registros[j].id<claveMenor){
claveMenor=registros[j].id;
indiceMenor=j;
}
}
intercambia(&(registros[i]),&(registros[indiceMenor]));
}
printf("Terminado.\n");
}
///////////////////////////////////////////////////
void genera(Numero numeros[],int n){
int i,j;
for(i=0,j=n;i<n;i++,j--){ //GENERA DE MAYOR A MENOR
numeros[i].id=j;
}
}
/////////////////////////////////////////////////////
int main()
{
int n;
system("title Salvatore Haro - todoprogramado.blogspot.com");
printf("SELECTION SORT...\n");
printf("Numero de registros a ordenar:");
scanf("%d",&n);
Numero numeros[n];
genera(numeros,n);
printf("1)Registros a ordenar...\n");
listar(numeros,n);
selectionSort(numeros,n);
printf("2)Registros ordenados...\n");
listar(numeros,n);
return 0;
}
ARCHIVO: Estructura.h
#ifndef ESTRUCTURA_H_INCLUDED
#define ESTRUCTURA_H_INCLUDED
typedef struct{
int id;
}Numero;
void intercambia(Numero* x, Numero* y);
void listar(Numero registros[],int n);
void ordenar(Numero registros[],int n);
void intercambia(Numero* x, Numero* y){
Numero temp;
temp=*x;
*x=*y;
*y=temp;
}
void listar(Numero registros[],int n){
int i;
for(i=0;i<n;i++){
printf("\t%d\n",registros[i]);
}
}
#endif