Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

C/C++: trier une chaîne de caractère à l’aide de l’algorithme de tri ‘ShellSort’


{filelink=13671}

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
 
void tri_shell(char *elements, int nombre_elements)
{
  int i, j, gap, k;
  char x, a[5];
 
  a[0]=8; a[1]=5; a[2]=3; a[3]=2; a[4]=1;
 
  for(k=0; k < 5; k++) {
    gap = a[k];
    for(i=gap; i < nombre_elements; ++i) {
      x = elements[i];
      for(j=i-gap; (x < elements[j]) && (j >= 0); j=j-gap){
        elements[j+gap] = elements[j];
      }
      elements[j+gap] = x;
    }
  }
}
 
int main(void)
{
  char s[255];
 
  printf("Tapez une chaîne de caractère(MAX 255 carc.):");
  gets(s);
  tri_shell(s, strlen(s));
  printf("Résultat du tri: %s.n", s);
 
  return 0;
}

No comments yet.

Leave a Comment