Está en la página 1de 12

CODIGO EN LENGUAJE C DEL PROGRAMA CON MENU PARA ORDENAMIENTO

(BURBUJA, SELECCIN DIRECTA Y QUICK SORT RECURSIVO)


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int numaleatorio(){
int numal;
numal=rand()%100;
return numal;
}

int burbuja(int vectoral[]){


int i,j,temp;
for(i=1; i<10; i++){
for(j=9; j>=i; j--){
if(vectoral[j-1] > vectoral[j]){
temp=vectoral[j-1];
vectoral[j-1]=vectoral[j];
vectoral[j]=temp;
}
}
}
printf("el vector ordenado es :");
for(i=0; i<10; i++) printf(" %d ",vectoral[i]);
}
int selecciond(int vectoral[]){
int i,k,j,menor,m;

for(i=0;i<=8;i++){
k=i;
menor=vectoral[i];
for(j=i+1;j<=9;j++){
if(vectoral[j]<menor){
menor=vectoral[j];
k=j;
}
}
vectoral[k]=vectoral[i];
vectoral[i]=menor;

}
printf("el vector ordenado es :");
for(m=0; m<10; m++) printf(" %d ",vectoral[m]);
}

void cambio(int *ptra, int *ptrb){


int temp;
if(ptra!=ptrb){
temp=*ptra;
*ptra=*ptrb;
*ptrb=temp;
}
}
void ordenparcial(int vectoral[], int izq, int der){
int media,i,j;
media=(vectoral[izq]+vectoral[der])/2;
i=izq;
j=der;
do{
while(vectoral[i] < media) i++;
while(media < vectoral[j]) j--;
if(i<=j){
cambio(&vectoral[i],&vectoral[j]);
i++;
j--;
}
}while(i<=j);
if(izq < j){
ordenparcial(vectoral,izq,j);
}
if(i<der){
ordenparcial(vectoral,i,der);
}
}

void qsrecursivo(int vectoral[]){


int m;
ordenparcial(vectoral,0,9);
printf("el vector ordenado es :");
for(m=0; m<10; m++) printf(" %d ",vectoral[m]);
}

int main(){

int vectoral[10],i,j,o,seguir;

srand(time(NULL));
do{
for(i=0; i<10; i++){
vectoral[i]=numaleatorio();
}
printf("\n\nel vector de diez enteros generado aleatoreamente es: ");

for(j=0;j<10;j++){
printf(" %d ",vectoral[j]);
}

printf("\n\nque metodo de ordenamiento desea?\n\n1.burbuja\n2.selaccion directa\n3.quick sort


recursivo\n0.salir\n\n");
scanf("%d",&o);

switch(o){

case 0 :return 0;

case 1 : burbuja(vectoral);
break;

case 2 : selecciond(vectoral);
break;

case 3 : qsrecursivo(vectoral);
break;

default : printf("\nOpcion invalida\n");

printf("\n\nDesea realizar ordenamiento a un vector aleatorio de enteros?\n\n1.si\n0.salir\n\n");


scanf("%d",&seguir);
}while(seguir==1);
return 0;
}
VENTANAS DE EJECUCIN

También podría gustarte