int main() { setlocale(LC_ALL, "Russian");// Чтобы выводился русский язык в консоли // неубывающие массивы int A[nA]; int B[nB]; int C[nA+nB]; // сюда запишутся результат слияния // считываем массивы printf("Введите массив A из 3 элементов:\n"); for (int i = 0; i < nA; i++) scanf("%i", &A[i]); printf("Введите массив B из 3 элементов:\n"); for (int i = 0; i < nB; i++) scanf("%i", &B[i]); // находим слияние int* Cnew = Merger(A, B, C); printf("Резулттат слияния:\n"); for (int i = 0; i < nA+nB; i++) { printf("%d ", Cnew[i]); } _getch(); return 0; }
void MergeSort(int A[], int tmp[], int left, int right) { int center = (left + right) / 2; if (left < right) { MergeSort(A, tmp, left, center); MergeSort(A, tmp, center + 1, right); Merger(A, tmp, left, center+1, right); // } }
int _mergSort(int arr[], int tmp[], int left, int right) { int mid, inversion_Count = 0; if(right>left) { mid = (left + right)/2; inversion_Count += _mergSort(arr, tmp, left, mid); inversion_Count += _mergSort(arr, tmp, mid+1, right); inversion_Count += Merger(arr, tmp, left, mid, right); } return inversion_Count; }