Алгоритмы сортировки
Сортировка вставками Сортировка слиянием Сортировка фрагмента массива [Ap , Aq] определяется рекурсивно. Функция MergeSort (p, q) Если (p==q) выход; Если (q − p ==1) упорядочить фрагмент из двух элементов; выход; r = (p+q)/2 MergeSort (p,m) MergeSort (p+1,q) Соединить два упорядоченных фрагмента в один (функция Merge( p, q, r ) ) #include // Файл 1.h с реализацией методов сортировки #include #include #include "time.h" const int N = 100; // 1000; 100 000 int Arr__[N], Arr[N]; // Arr - массив сортируемых значений. // Arr__ массив используемый для инициализации Arr void Out(int K, int M, int* A) // Вспомогательная функция, выводит K начальных { int i = 0; //значений массива, K значений из середины if (N < 3 * K) // К последних значений { int i = 0; while (i < N) { if (i % M == 0) printf("\n"); // Если размер массива < 3*K , то выводится printf("%8d ", A[i]); i++; } // весь массив printf("\n"); //M - число элементов в строке вывода } else { int ind[3] = { 0, N/2-K/2, N-K }; //начальные индексы выводимых фрагментов for (int i = 0; i < 3; i++) { int beg = ind[i]; for (int j = beg; j < beg + K; j++) { if ((j - beg) % M == 0) printf("\n"); printf("%8d ", A[j]); } printf("\n"); } } }