Файл: Анпоо колледж воронежского института высоких технологий.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 54

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Задание на проектирование

Введение

Раздел 1.

1.1 Алгоритмы сортировки

1.2 Принципы внешней сортировки.

1.3. Каскадная сортировка

1.4 Принципы программирования сортировки данных.

Раздел 2. проблемы, связанные с технологией программирования описание назначения каждого модуля с особенностями его реализации, строится структурная схема программы.

Раздел 3 В результате работы программы мы получаем отсортированные данные. При этом время сортировки больших данных составляет O(n), при сортировке среднего и малого объёма данных составляет O(n log(n)), где n – длина массива данных. Другими словами, C# эффективен для сортировки больших списков и массивов, но для достижения этой цели требуется O(N) дополнительного пространства оперативной памяти компьютера во время выполнения алгоритма сортировки. Временная сложность составляет O(N*log N), поскольку используется стратегия «разделяй и властвуй».Алгоритм сортирует большой массив данных за 25мкс (

Заключение

Список используемых источников

Файл ArraySort.cs 





{




temp[k] = array[i];




i++;




}




else




{




temp[k] = array[j];




j++;




}




}




int h;




for (h = 0, i = beg; h < l; h++, i++)




{




array[i] = temp[h];




}




}
















public static void MergeSort(int[] a, int first, int last)




{




if (first >= last)




{




return;




}




int mid = (first + last) / 2;




MergeSort(a, first, mid);




MergeSort(a, mid + 1, last);




Merge(a, first, mid, last);




}










public static void Merge(int[] a, int first, int mid, int last)




{




int first1 = first;




int last1 = mid;




int first2 = mid + 1;




int last2 = last;




int[] temp = new int[a.Length];




int i = first1;




for (; first1 <= last1 && first2 <= last2; i++)




{




if (a[first1] < a[first2])




{




temp[i] = a[first1];




first1++;




}




else




{




temp[i] = a[first2];




first2++;




}




}




for (; first1 <= last1; i++)




{




temp[i] = a[first1];




first1++;




}




for (; first2 <= last2; i++)




{




temp[i] = a[first2];




first2++;




}




for (int k = first; k <= last; k++)




{




a[k] = temp[k];




}




}
















// 5.QuickSort










public static void QuickSort(int[] a, int start, int end)




{




if (start >= end)




{




return;




}




int index = Part(a, start, end);




QuickSort(a, 0, index - 1);




QuickSort(a, index + 1, end);




}










private static int Part(int[] a, int start, int end)




{




int p = a[end]; // element




int index = start; // kisman index




for (int i = start; i < end; i++)




{




if (a[i] < p)




{




int t = a[i];




a[i] = a[index];




a[index] = t;




index++;




}




}




int temp = a[index];




a[index] = a[end];




a[end] = temp;




return index;




}










// BinarySearch //










public static void BinarySearch(int[] a)




{




for (int i = 0; i < a.Length; i++)




{




int begin = 0;




int end = i - 1;




int mid = end / 2;




while (end >= begin)




{




if (a[i] == a[mid])




{




break;




}




if (a[i] > a[mid])




{




begin = mid + 1;




}




else




{




end = mid - 1;




}




mid = begin + (end - begin) / 2;




} // while-ov gtav texy vory mid-n e, vorum piti texadrenq a[i]-n, mi mi hat araj tanq texadrenq




int temp = a[i];




for (int k = i; k > mid; k--)




{




a[k] = a[k - 1];




}




a[mid] = temp;




}




}










}




}