SELECTION_SORT_REC.c



// ALGORITMO DE ORDENAMIENTO POR SELECCION DE FORMA RECURSIVA
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int min=1000,z=0;
int vector[] = {7,8,2,34,6,17,5,7,9,1,23,12};

void intercambio(int *x, int *y)
{
	int suma = *x+*y;
	*x = suma - *x;
	*y = suma - *y;
}

void Fmin(int x, int memoria)
{
	if ( x < memoria )
	{
		if ( vector[x] < min )
		{ min = vector[x]; z=x; }
		x++;
		Fmin(x, memoria);
	}
}

void Sort_Selection(int x, int memoria)
{
	if ( x < memoria )
	{
		min=1000;
		Fmin(x, memoria);
		intercambio(&vector[x], &vector[z]);
		x++;
		Sort_Selection(x, memoria);
	}
}

void Muestra_Vector(int x, int memoria)
{
	if ( x == memoria ) return;
	printf("%d\t", vector[x]);
	x++;
	Muestra_Vector(x, memoria);
}

void inicio()
{
	int y,x,suma;
	int memoria= (int)(sizeof(vector)/sizeof(int));

	Sort_Selection(0, memoria);
	Muestra_Vector(0, memoria);
	printf("\n");
}

int main() { inicio(); }