static void Merge(string[] books, int p, int q, int r)
string[] booksLeft = new string[n1 + 1];
string[] booksRight = new string[n2 + 1];
booksLeft[i] = books[p + i];
for (j = 1; j <= n2; j++)
booksRight[j - 1] = books[q + j];
if (booksLeft[i].CompareTo(booksRight[j]) >= 0)
books[k] = booksRight[j];
static void Merge_Sort(string[] books, int p, int r)
Merge_Sort(books, q + 1, r);
public static void Main(string[] args)
string[] books = { "Пушкин", "Лермонтов", "Грибоедов", "Шекспир", "Гоголь", "Шолохов", "Достоевский" };
int p = 0, r = books.Length - 1;