Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
До лабораторної роботи №8
з курсу: «Інформатика»
на тему: «Сортування злиттям»
ЗАВДАННЯ
Написати програму для сортування злиттям.
ТЕКСТ ПРОГРАМИ
using System;
using System.Collections.Generic;
using System.Text;
namespace lab_inform_8
{
class Program
{
static void Main(string[] args)
{
MERGESORT ms = new MERGESORT();
Console.WriteLine("\nВихiдний масив: \n");
foreach (int x in MERGESORT.L)
Console.Write("\t" + x);
ms.MergeSort(MERGESORT.L, 0, 7);
Console.WriteLine("\nВiдсортований масив: \n");
foreach (int x in MERGESORT.L)
Console.Write("\t" + x);
Console.ReadKey();
}
}
class MERGESORT
{
static public int[] L = new int[] { 2, 4, -5, 7, 3, 6, -8, 12 };
public int[] R = new int[L.Length];
int FS, FE, i, J;
public void MergeList(int[] L, int ST1, int E1, int ST2, int E2)
{
FS = ST1; FE = E2; i = 0; J = 0;
while ((ST1 <= E1) && (ST2 <= E2))
{
if (L[ST1] < L[ST2])
{
R[i] = L[ST1];
ST1++;
}
else
{
R[i] = L[ST2];
ST2++;
}
i++;
}
if (ST1 <= E1)
for (int j = ST1; j <= E1; j++)
{
R[i] = L[j];
i++;
}
else for (int j = ST2; j <= E2; j++)
{
R[i] = L[j];
i++;
}
for (int I = FS; I <= FE; I++)
{
L[I] = R[J];
J++;
}
}
public int MergeSort(int[] L, int first, int last)
{
if (first < last)
{
int md = (first + last) / 2;
MergeSort(L, first, md);
MergeSort(L, md + 1, last);
MergeList(L, first, md, md + 1, last);
}
return 0;
}
}
}
РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ