Bucketsort

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (368 palavras )
  • Download(s) : 0
  • Publicado : 7 de agosto de 2012
Ler documento completo
Amostra do texto
#include
#include
#include
#include

#define tam_bucket 5 //Tamanho de cada balde da estrutura bucket.
#define num_bucket 10 //Número de baldes, isto é, o tamanho do vetor de bucket#define max 10 //Tamanho do vetor a ser ordenado.

typedef struct {
int topo;
int balde[tam_bucket];
}bucket;

void bucket_sort(int v[],int tam);//cabeçalho das funções
void bubble(int v[],int tam);
void Quicksort(int vet[], int ini , int fim);
void imprime(int v[] , int tam);

int main(){

int vetor[max];
int index;srand(time(NULL));
for(index = 0; index < max; index++) {
vetor[index] = rand() % 101;
}

printf("Vetor Desordenado\n\n");
imprime(vetor, max);printf("\n\n");

bucket_sort(vetor, max);

printf("Vetor ordenado\n\n");
imprime(vetor, max);
printf("\n\n");

return 0;
}

void bucket_sort(int v[],int tam){bucket b[num_bucket];
int i, j, k;
for(i = 0; i < num_bucket; i++) //inicializa todos os "topo"
b[i].topo = 0;

for(i = 0; i < tam; i++){//verifica em que balde o elemento deve ficar
j = (num_bucket) - 1;
while(1){
if(j= j * 10){b[j].balde[b[j].topo] = v[i];
(b[j].topo)++;
break;
}
j--;
}
}

for(i = 0; i < num_bucket; i++)//ordena os baldes
if(b[i].topo)
bubble(b[i].balde,b[i].topo);
//Quicksort(b[i].balde, b[0].topo, b[i].topo);i=0;
for(j = 0; j < num_bucket; j++){ //põe os elementos dos baldes de volta no vetor
for(k = 0; k < b[j].topo; k++){
v[i] =...
tracking img