private void MergeSort(int low, int high) {        
        if (low < high) {
            int mid = low + (high - low) / 2;

            // Sorting lower end of array
            MergeSort(low, mid);
            // Upper lower end of array
            MergeSort(mid + 1, high);
            // Merging both ends of the array
            MergeSortParts(low, mid, high);
        }
    }