Задача: Сортировка Шелла, обший принцип
Исходник: shell_in_cpp_with_struct, язык: C++ [code #608, hits: 14928]
аноним: Aleksey Tarakanov [добавлен: 16.03.2010]
  1. struct massiv
  2. {char fio[40];
  3. int key;
  4. };
  5.  
  6. void sort(massiv *a,int n)
  7. {massiv temp;
  8. int i,j,incr=n/2;
  9. while(incr>0)
  10. {
  11. for(i=incr;i<n;i++)
  12. {
  13. j=i-incr;
  14. while(j>=0)
  15. if(a[j].key > a[j+incr].key)
  16. {temp=a[j];
  17. a[j]=a[j+incr];
  18. a[j+incr]=temp;
  19. j=j-incr;}
  20. else j=-1;}
  21. incr=incr/2;
  22. }
  23. };
a - массив и n записей.
key - одно из полей записи, которое является ключом.
temp - переменная того же типа, что и элементы.

+добавить реализацию