SHARE
TWEET

Untitled

GalWat May 31st, 2020 1,055 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void SortShell1(int *a, int n)
  2. {
  3.     int i, j, m, s; //  Algorithm 8 (Shell)
  4.     s = 1;
  5.     while (s < n)
  6.         s *= 2;
  7.     while (s > 0) {
  8.         s = (s - 1) / 2;
  9.         for (i = 0; i < n - s; i++)
  10.             for (j = i + s; j - s >= 0; j -= s)
  11.                 if (a[j - s] > a[j]) {
  12.                     m = a[j];
  13.                     a[j] = a[j - s];
  14.                     a[j - s] = m;
  15.                 }
  16.                 else
  17.                     break;
  18.     }
  19. }
  20.  
  21. void SortShell2(int *a, int n)
  22. {
  23.     int i, j, m, s; //  Algorithm 9 (Shell)
  24.     s = 1;
  25.     while (s < n)
  26.         s = 3 * s + 1;
  27.     while (s > 0) {
  28.         s = s / 3;
  29.         for (i = 0; i < n - s; i++)
  30.             for (j = i + s; j - s >= 0; j -= s)
  31.                 if (a[j - s] > a[j]) {
  32.                     m = a[j];
  33.                     a[j] = a[j - s];
  34.                     a[j - s] = m;
  35.                 }
  36.                 else
  37.                     break;
  38.     }
  39. }
  40.  
  41. void sort(Key *keys, char vals[][64], int n)
  42. {
  43.     char s[64];
  44.     Key st;
  45.     for (int k = n / 2; k > 0; k /= 2) {
  46.         for (int i = k; i < n; i++) {
  47.             strcpy(s, vals[i]);
  48.             st = keys[i];
  49.             int j;
  50.             for (j = i; j >= k; j -= k) {
  51.                 if (less(st, keys[j - k])) {
  52.                     keys[j] = keys[j - k];
  53.                     strcpy(vals[j], vals[j - k]);
  54.                 }
  55.                 else {
  56.                     break;
  57.                 }
  58.             }
  59.             keys[j] = st;
  60.             strcpy(vals[j], s);
  61.         }
  62.     }
  63.     puts("Sorted successfully");
  64. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top