.NET 4.x Сортировка естественным двух путевым слиянием (Алгоритм Е) - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста, на паре задали сделать сортировку "Сортировка естественным двух путевым слиянием (Алгоритм Е)", все что искал и на ходил в интернете было написано или на С или на паскали но не на C# + они были все сделаны с помощью точек возврата. подскажите, или помогите написать этот алгоритм

Решение задачи: «.NET 4.x Сортировка естественным двух путевым слиянием (Алгоритм Е)»

textual
Листинг программы
        int[] R;
        int N, t, i, j, s, d, k, p, r, l, q;
 
        public void Sort(int N, ref int[] R)
        {
            Array.Resize(ref R, N * 2);
            S1: s = 0; p = 1;
            S2: if (s == 0) { i = 0; j = N - 1; k = N - 1; l = 2 * N; }
                  if (s == 1) { i = N; j = 2 * N - 1; k = -1; l = N; }
                  d = 1; q = p; r = p;
            S3: if (R[i]> R[j]) goto S8;
            S4: k = k + d; R[k] = R[i];
            S5: i += 1; q -= 1; if (q > 0) goto S3;
            S6: k += d; if (k == l) goto S13; else R[k] = R[j];
            S7: j -= 1; r -= 1; if (r > 0) goto S6; else goto S12;
            S8: k += d; R[k] = R[j];
            S9: j -= 1; r -= 1; if (r > 0) goto S3;
            S10: k += d; if (k == l) goto S13; else R[k] = R[i];
            S11: i += 1; q -= 1; if (q > 0) goto S10;
            S12: q = p; r = p; d = -d; t = k; k = l; l = t; if (j - i < p) goto S10; else goto S3;
            S13: p += p; if (p < N) { s = 1 - s; goto S2; }
                  if (s == 0) for (t = 0; t < N; t += 1) { R[t] = R[t + N]; }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы