ShellSort

1. ShellSort

Elias Faiçal
dudosurf

(usa Slackware)

Enviado em 30/10/2008 - 11:23h

Olá pessoal, sou iniciante em programação e estou tentando enteder o algoritmos de ordenação ShellSort, fiz umas pesquisas sobre o ShellSort mas não tive muito sucesso com a didatica encontrada na internet, gostaria de uma ajuda, se possível o algoritmo implementado em lista.
Desde já agradeço


  


2. Re: ShellSort

Sabino Diego Spader
sabino.ecp

(usa Ubuntu)

Enviado em 26/03/2010 - 14:57h

Opa, pela data em que a pergunta foi feita, provavelmente voce ja tenha resolvido o seu problema.
Mas como eu cheguei aqui, alguem tbm pode chegar e olhar a resposta entao.

ShellSort implementado em C:

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

void shellSort(int numbers[], int array_size);


int main(){

//seed random number generator
/* srand(getpid()); */ //Descomente essa linha caso voce queira que o programa gere os numeros aleatorios.

int NUM_ITEMS = 100;
int numbers[100];

//Descomente o trecho abaixo caso voce queira que o programa gere os numeros aleatorios.
/* for (i = 0; i < NUM_ITEMS; i++)
number[i] = = rand();
*/

numbers[100] = {12,2,6,9,5,7,16,55,32,15}; //Comente esse trecho, caso voce descomente o trecho de codigo acima.

shellSort(numbers, NUM_ITEMS);

printf("Números ordenados:\n");
for (i = 0; i < NUM_ITEMS; i++)
printf("%i\n", numbers[i]);

return 0;
}


void shellSort(int numbers[], int array_size)
{
int i, j, increment, temp;

increment = 3;
while (increment > 0)
{
for (i=0; i < array_size; i++)
{
j = i;
temp = numbers[i];
while ((j >= increment) && (numbers[j-increment] > temp))
{
numbers[j] = numbers[j - increment];
j = j - increment;
}
numbers[j] = temp;
}
if (increment/2 != 0)
increment = increment/2;
else if (increment == 1)
increment = 0;
else
increment = 1;
}
}
#############################

Se voce simplesmente copiar esse codigo e compilar, ira funcionar. :d
Alguma dúvida, ou erro que eu possa ter gerado. Me avise.

vlw








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts