Практическая работа 3 по предмету : алгоритмы и структура данных
algoritm 3 Bu səhifədəki naviqasiya: ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ Практическая работа 3 ПО ПРЕДМЕТУ 18. [-26, -25, -14, 30, -7, 10, 25, -5, 14, -8, -24, -9, -3, -10, 11, -30, 4, 15, -9, 7, 3, 20, -27, -17, -11] Compiled Successfully. memory: 17476 time: 0.02 exit code: 0 MergeSort
МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕ СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ РЕСПУБЛИКИ УЗБЕКИСТАН
ДЖИЗАКСКИЙ ФИЛИАЛ НАЦИОНАЛЬНОГО УНИВЕРСИТЕТА УЗБЕКИСТАНА ИМЕНИ МИРЗО УЛУГБЕКА
ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ
КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ
Практическая работа 3
ПО ПРЕДМЕТУ : АЛГОРИТМЫ И СТРУКТУРА ДАННЫХ
ВЫПОЛНИЛ СТУДЕНТ ГРУППЫ 102-20 Ташмуродов Д.
ПРИНЯЛ ПРЕПОДОВАТЕЛЬ: Ахатов А.
Задания 7. Рассчитать заданные задачи с помощью поисковых алгоритмов. Используйте SelectionSort,QuickSort, BubbleSort, MergeSort и объясните сложность программы! (Big O)
18. [-26, -25, -14, 30, -7, 10, 25, -5, 14, -8, -24, -9, -3, -10, 11, -30, 4, 15, -9, 7, 3, 20, -27, -17, -11]
using System;
class GFG {
static void bubbleSort(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1]) {
// swap temp and arr[i]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
static void printArray(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
public static void Main()
{
int[] arr = { -26, -25, -14, 30, -7, 10, 25, -5, 14, -8, -24, -9, -3, -10, 11, -30, 4, 15, -9, 7, 3, 20, -27, -17, -11};
bubbleSort(arr);
Console.WriteLine("Sorted array");
printArray(arr);
}
}
Compiled Successfully. memory: 17476 time: 0.02 exit code: 0
MergeSort
using System;
class MergeSort {
void merge(int[] arr, int l, int m, int r)
{
int n1 = m - l + 1;
int n2 = r - m;
int[] L = new int[n1];
int[] R = new int[n2];
int i, j;
for (i = 0; i < n1; ++i)
L[i] = arr[l + i];
for (j = 0; j < n2; ++j)
R[j] = arr[m + 1 + j];
i = 0;
j = 0;
int k = l;
while (i < n1 && j < n2) {
if (L[i] <= R[j]) {
arr[k] = L[i];
i++;
}
else {
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1) {
arr[k] = L[i];
i++;
k++;
}
while (j < n2) {
arr[k] = R[j];
j++;
k++;
}
}
void sort(int[] arr, int l, int r)
{
if (l < r) {
int m = l+ (r-l)/2;
sort(arr, l, m);
sort(arr, m + 1, r);
merge(arr, l, m, r);
}
}
static void printArray(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
public static void Main(String[] args)
{
int[] arr = {-26, -25, -14, 30, -7, 10, 25, -5, 14, -8, -24, -9, -3, -10, 11, -30, 4, 15, -9, 7, 3, 20, -27, -17, -11};
Console.WriteLine("Given Array");
printArray(arr);
MergeSort ob = new MergeSort();
ob.sort(arr, 0, arr.Length - 1);
Console.WriteLine("\nSorted array");
printArray(arr);
}
}
Dostları ilə paylaş: