C/Data Structure Algorithm/Shell Sort — различия между версиями
| Admin (обсуждение | вклад) м (1 версия: Импорт контента...) | Admin (обсуждение | вклад)  м (1 версия: Импорт контента...) | 
| (нет различий) | |
Текущая версия на 10:22, 25 мая 2010
The Shell Sort
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void shell(char *items, int count)
{
  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 < count; ++i) {
      x = items[i];
      for(j=i-gap; (x < items[j]) && (j >= 0); j=j-gap){
        items[j+gap] = items[j];
      }
      items[j+gap] = x;
    }
  }
}
int main(void)
{
  char s[255]="asdfasdfasdfasdfasdf";
  shell(s, strlen(s));
  printf("The sorted string is: %s.\n", s);
  return 0;
}