Programación General > C/C++

 ordenamiento por cubetas

(1/1)

eruelas:
Hola a todos kisiera saber si alguien me puede dar un ejemplo del metedo de ordenacion por cubetas y si es posible codigo y/o descripcion dl  procedimiento de vdd se los agradeceria mucho gracias de antemano

manuel_vzla:

--- Código: C ---#include<stdio.h>void modifica_cubeta(int [],int ,int);main(){      int i;      int j;int N;    int z=0;  printf("cantidad de elementos\n");         scanf("%d",&N);       int tem[N];    int tem1[N];    int Arreglo[N][10];    int copia[10][10];             int temp[N];       int aux[N];    int c[N];             printf("introduzca los elementos\n");            for(i=0;i<N;i++)                  scanf("%d",& aux[i]);                   for(i=0;i<N;i++)         c[i]=aux[i];                    for(j=0;j<10;j++)                      for(i=0;i<N;i++)                                     Arreglo[i][j]=0; for(j=0;j<10;j++)           for(i=0;i<10;i++)                    copia[i][j]=0;      modifica_cubeta(aux,N,1);    for(j=0;j<10;j++)            for(i=0;i<N;i++)  {                                         temp[i]=aux[i];     //printf("%d  ",temp[i]);        Arreglo[i][aux[i]]=c[i];     tem[i]=Arreglo[i][j];      if(Arreglo[i][j]>0){       modifica_cubeta(tem,N,2);     printf("%d  ",tem[i]);      c[i]=Arreglo[i][j];     copia[aux[i]][tem[i]]=c[i];            }           }        for(j=0;j<10;j++)            for(i=0;i<10;i++)  {                      if(i%10==0)        printf("\n");      printf("%3d  ",copia[i][j]);        }        //system("pause"); } void modifica_cubeta(int b[],int n ,int pasada){      int casilla;   int i,j;     int n_tem;        int n_temp[10*n][10*n];        int n_temp1[10*n][10*n];    for(j=0;j<=10*n;j++)                     for(i=0;i<n;i++)                                          {                                                     n_tem=b[i];                                                    n_temp[i][j]=n_tem/10;                n_temp1[i][j]=n_tem%10;                                                      if(j>=1)                        {                                            n_temp[i][j]=n_temp[i][j-1]/10;                                 }            if(j>=2){                                                    n_temp1[i][j-2]= n_temp1[i][j];                   n_temp1[i][j]=n_temp[i][j-2]%10;                                }                               if(j>0){                            if(j==pasada){                           b[i]=n_temp1[i][j];                        }                                                                }                   } } 

Navegación

[0] Índice de Mensajes

Ir a la versión completa